我有一个定义如下的模型:
class Attachment(models.Model):
file = models.FileField(upload_to=MEDIA_ROOT)
使用它的绝对路径定义MEDIA_ROOT,它类似于d:\ django \ my_proj \ media。在管理员中,指向它的链接如下所示:http://localhost:8000/media/d:/django/my_proj/media/file.txt。我该如何解决这个问题?
答案 0 :(得分:2)
使用/
代替MEDIA_ROOT
。从the docs开始,upload_to
应为:
将是的本地文件系统路径 附加到您的MEDIA_ROOT设置 确定网址的价值 属性。
换句话说,您在upload_to
中指定的路径将附加到MEDIA_ROOT
以形成上传目录,并附加到MEDIA_URL
以形成文件的URL。< / p>
P.S。可能值得指定一个子目录而不是/
,因此上传的文件无法覆盖您的媒体文件。例如,upload_to='uploads/'
。要按年/月组织上传,您甚至可以upload_to='uploads/%Y/%m/'
。有关详细信息,请参阅文档。