我正在尝试将图像显示在我使用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 :(得分:0)
在媒体之前或之后不应该有任何正斜杠,它应该只是.join(BASE_DIR, 'media')
。您也不需要添加upload_to('media')
,因为根是媒体。建议您不要在媒体根目录中添加图像,应在媒体文件夹中创建一个img文件夹,然后在图像域中添加upload_to('img/')
。
关于在文本框/文本字段中插入图像预览,是的,这是可能的,但它应该是一个单独的问题,尽管我认为有很多相同的问题。