2016-11-02 5 views
3

내 웹 사이트에 이미지를 표시하고 싶지만 실수를 찾을 수 없습니다. 다른 게시물에서 나는 settings.py을 업그레이드해야한다는 것을 알았지 만, 예를 들어 MEDIA_ROOT와 MEDIA_URL을 설정했지만 그게 도움이되지 않습니다.웹 서버에 이미지를 업로드하는 방법. django

모델 :

class News(models.Model): 
title = models.CharField(max_length=200, unique=True, 
         verbose_name="Заголовок") 
description = models.TextField(verbose_name="Краткое содержание") 
posted = models.DateField(default=datetime.date.today(), db_index=True, verbose_name="Опубликвана") 
tags = TaggableManager(blank=True, verbose_name="Теги") 
#user = models.ForeignKey(User) 
views = models.IntegerField(default=0) 
likes = models.IntegerField(default=0) 

class Meta: 
    ordering = ['-posted'] 
    verbose_name = "новость" 
    verbose_name_plural = "нвости" 

def get_image_filename(self, filename): 
    title = self.News.title 
    slug = slugify(title) 
    return "post_images/%s-%s" % (slug, filename) 


class Images(models.Model): 
post = models.ForeignKey(News, default=None, related_name="image") 
image = models.ImageField(upload_to=settings.MEDIA_ROOT, 
          verbose_name="Image") 

설정

MEDIA_ROOT = os.path.join(BASE_DIR, 'media') 
MEDIA_URL = '/media/'` 

보기

def news(request): 
context = RequestContext(request) 
ImageFormSet = modelformset_factory(Images, form=ImageForm, 
            extra=3) 
if request.method == 'POST': 
    form = NewsForm(request.POST) 
    formset = ImageFormSet(request.POST, request.FILES, 
          queryset=Images.objects.none()) 
    if form.is_valid() and formset.is_valid(): 
     post_form = form.save(commit=False) 
     #post_form.user = request.user 
     post_form.save() 
     for forma in formset.cleaned_data: 
      try: 

       image = forma['image'] 
       photo = Images(post=post_form, image=image) 
       photo.save() 
       messages.add_message(request, messages.SUCCESS, 
            "!!!") 
      except KeyError: 
       pass 
     return redirect("main") 
    else: 
     print(form.errors, formset.errors) 
else: 
    form = NewsForm() 
    formset = ImageFormSet(queryset=Images.objects.none()) 
try: 
    page_num = request.GET.get('page') 
except KeyError: 
    page_num = 1 
images = Images.objects 
all_news = News.objects.all() 
paginator = Paginator(all_news, 10) 
try: 
    pages = paginator.page(page_num) 
except InvalidPage: 
    pages = paginator.page(1) 
return render_to_response("mainpage.html", {'form': form, 'formset': formset, 
              'pages': pages, 'news': images}, context) 

및 템플릿

{% block content %} 
    {% for new in pages %} 
    <h2>{{ new.title }}</h2> 

    <img src="{{ new.image.url}}"> 

{% endfor %} 


<form action="" method="post" enctype="multipart/form-data"> 
{% include "generic/form.html" %} 
<input type="submit" value="создать"> 
</form> 
{% endblock %} 

내 실수는 어디 갔지?

답변

0
{% for new in news %} 
<h2>{{ new.title }}</h2> 
    {% for image in new.image.all %} 
    <img src="{{image.image.url }}"> 
    {% endfor %} 

models.ForeignKey (뉴스, 기본값 = 없음, related_name = "이미지") 많은 사진을 =을 가지고 포스트 때문입니다.

0

이 줄 :

이미지 = Images.objects 이미지

변경이 = Images.objects.all()와 작동하는지 확인?

+0

이 줄을 삭제하는 것을 잊었습니다. 아무것도하지 않습니다. –

관련 문제