我在理解和使用Django的ImageField时遇到了问题。
我有一个模型:
class BlogContent(models.Model):
title = models.CharField(max_length=300)
image = models.ImageField(upload_to='static/static_dirs/images/')
description = models.TextField()
我的文件系统当前为:
src
|---main_project
|---app_that_contains_blog_content_model
|---static
|---static_dirs
|---images
当我运行服务器并转到管理页面时,我可以添加BlogContent对象。在为图像字段选择图像后,该图像有一个临时名称。但是,在我保存此对象后,我在upload_to路径指定的文件夹中找不到该图像。
正确的做法是什么?
3条答案
按热度按时间esyap4oy1#
您的图像将上传到
media
文件夹,因此最好在images/
等模型中更改路径,它们将上传到media/images
在
settings.py
中添加以下内容在
url.py
中然后,如果您想显示所有这些图像,请在
view.py
中使用类似的代码BlogContent.objects.all()
并将其渲染为:
zz2j4svz2#
upload_to
中的static
没有意义,因为用户上传的图像进入media/
文件夹。.你需要这些:所有图像都落在:
您可以在如下模板中访问它:
在设置中:
g2ieeal73#
你应该使用媒体路径,而不是静态的。