我得到了错误的URL,该URL指向已上传到Django管理员中的媒体文件夹的文件。
文件的URL为:
/media/Users/hammer/Dev/*****/media/attachments/2018/09/12/pdf-test.pdf
但是文件的正确URL是:
/media/attachments/2018/09/12/pdf-test.pdf
似乎MEDIA_ROOT(/ Users / hammer / Dev / ***** / media /)被错误地添加到URL中的第一个/ media /之后。
MEDIA_URL是:
MEDIA_URL = '/media/'
MEDIA_ROOT是:
MEDIA_ROOT = settings.BASE_DIR + '/media/'
模型的文件字段的定义为:
file = models.FileField(upload_to=settings.MEDIA_ROOT + "attachments/%Y/%m/%d/", null=True)
文件字段模型的更改页面上显示了文件字段的错误URL。
关于如何解决此问题的任何想法?
答案 0 :(得分:1)
您不应在“ upload_to”参数中专门包含MEDIA_ROOT。参见documentation:
如果使用默认的FileSystemStorage,则字符串值将附加到MEDIA_ROOT路径中,以形成本地文件系统上将存储上载文件的位置。
因此,只需将其删除:
file = models.FileField(upload_to="attachments/%Y/%m/%d/", null=True)
不过,您将需要使用db中的错误值重新创建实例。