我有一个使用 Django 开发的项目,其中用户可以通过视图中的表单上传图像。该部分似乎工作正常,因为我可以将数据绑定到表单并将图像保存在我用于项目数据库的目录中的指定文件夹中。但是,当我去渲染页面时,我得到类似于以下行的内容(上传的图像具有文件名“2220.jpg”):
GET http://localhost:8000/Users/.../project/database/user_uploads/08-30/2220.jpg 404 (NOT FOUND)
这是我的模板中呈现图像的行:
<img class="image" src="{{ entry.image.url }}"/>
我的settings.py的相关部分:
PROJECT_DIR = os.getcwd()
MEDIA_ROOT = os.path.join(PROJECT_DIR, 'database', 'user_uploads')
MEDIA_URL = ''
STATIC_ROOT = ''
STATIC_URL = '/static/'
包含图像的模型:
def getImagePath(instance, filename):
"""Generates a path to save the file. These are timestamped by the
current date and stored in the databases directory.
Returns:
Path for the file.
"""
date = datetime.date.today().strftime('%Y-%m-%d')
return os.path.join(
os.getcwd(), 'database', 'user_uploads', date, filename)
class Entry(models.Model):
# Other code omitted
image = models.ImageField(upload_to=getImagePath)
我猜我缺少一些 URL 配置,因为它似乎要求通过 localhost(或更一般地说是我的主机名)提供图像,而不仅仅是文件系统上的目录。文件位置是正确的,它似乎只是在执行一个 HTTP 请求,而不是直接获取它。我错过了什么?为了清楚起见,我很乐意提供任何其他信息。
先感谢您!