2017-07-26 12 views
0

Djangoで構築されたブログプロジェクトの記事に画像を表示しようとしています。Djangoでテンプレートに画像を表示

settings.py:

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

urls.py(プロジェクト):ここに関連するコードである

urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 

models.py:

class Article(models.Model): 
    title = models.CharField(max_length=150) 
    slug = models.SlugField(max_length=150) 
    author = models.CharField(max_length=80) 
    text = models.TextField(null=True) 
    date = models.DateTimeField(auto_now_add=True, auto_now=False, 
           verbose_name="Date de parution") 
    image1 = models.ImageField() 
    image2 = models.ImageField() 
    image3 = models.ImageField() 

    def __str__(self): 
     return self.titre 

views.py。

def article(request, id, slug): 
    article = get_object_or_404(Article, id=id, slug=slug) 
    return render(request, 'blog/post.html', {'article': article}) 

post.html:

<img src="{{ article.image1.url }}"/> 
<img src="{{ article.image2.url }}"/> 
<img src="{{ article.image3.url }}"/> 

しかし、それは動作しません。画像は表示されません。助言がありますか ?

+0

テンプレート内に他のフィールドがありますか?タイトルや著者のようなもの? – Exprator

+0

あなたは要素を調べ、何がsrcの中に投稿されているかを表示できますか? – Exprator

+0

私はテンプレートの他のフィールドを取得します:タイトル、著者、テキスト、それらはすべてうまくいきます。 + srcに投稿された要素は単純な.jpg画像 –

答えて

0

メディアの前後にスラッシュを使用しないでください。単に.join(BASE_DIR, 'media')にする必要があります。また、ルートがメディアであるため、upload_to('media')を追加する必要はありません。メディアルートに画像を追加することはお勧めしません。メディアフォルダ内にimgフォルダを作成してからを画像フィールドに追加する必要があります。

テキストボックス/テキストフィールド内に画像プレビューを挿入することは可能ですが、別の質問にする必要がありますが、私はそこに多くの同一の質問があると思います。

関連する問題