我有类似的东西:
MEDIA_ROOT = '/home/httpd/foo/media/'
MEDIA_URL = 'http://www.example.org/media/'
(...)
file = models.FileField(upload_to='test')
当我在管理页面中使用该字段创建一个对象时,Django在数据库中存储完整的文件路径,例如:“/ home / httpd /foo / media / test / myfile.pdf”。这与docs中的内容相反。
所有这些都将存储在你的 database是文件的路径 (相对于MEDIA_ROOT)。
当我在模板中使用file.url时,我会得到类似的内容:
而不是我想要的:
我做错了什么?
答案 0 :(得分:3)
我刚刚在我的一个项目中做了一个示例FileField,它似乎按照您的预期工作。这里有几件事要尝试。
尝试按以下方式进行设置。我知道他们说不用/结束你的MEDIA_URL是不好的,但我就是这样做的,我更喜欢它。您只需记住在模板中使用MEDIA_URL时使用斜杠:href =“{{MEDIA_URL}} / path / to / file”
MEDIA_ROOT = '/home/httpd/foo/media'
MEDIA_URL = '/media'
如果这对任何事都没有帮助,请创建一个新的简化模型,其中没有自定义FileField,看看你是否仍然遇到同样的问题。