【发布时间】:2019-05-29 11:10:07
【问题描述】:
我缺少一些元素来显示用 Django 创建的博客上的每个帖子所附的图片,而不是图片文件名。
这类问题的许多解决方案是:
<img src="{{Object.picture.url}}"/>
在我尝试过的模板上:
1
<img src="{{ posts.title_picture.url }}"/>
2
<img src="{{title_picture.url}}"/>
分别在浏览器上显示:
1.
pictureforpost1.png
2.
图片
型号:
class Post(models.Model):
title = models.CharField(max_length=255, blank=True, null=True)
title_picture = models.FileField(blank=True,null=True)
查看:
class IndexView(ListView):
model = Post
context_object_name = 'posts'
似乎 Django 正在查找文件。它只是不显示图片。
****感谢以下答案的解决方案:****
变了
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
to
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
并添加以下内容
urls.py
urlpatterns = [
...
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
# when served with STATIC_URL and STATIC_ROOT instead it
# is not working so check difference in MEDIA and STATIC.
总的来说,我缺乏(现在仍然:))关于上传和显示静态文件的基本知识。
谢谢。
【问题讨论】:
-
是的,因为您没有给出将文件上传到模型中媒体文件夹的任何路径。因此,只有文件名保存在数据库中,而不是文件。查看如何上传图片并在django中显示