首页 文章

Django管理员中文件的URL不正确

提问于
浏览
0

我收到的错误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出现在文件字段模型的更改页面上 .

有想法该怎么解决这个吗?

1 回答

  • 1

    您不应在upload_to参数中专门包含MEDIA_ROOT . 见documentation

    如果使用默认的FileSystemStorage,则字符串值将附加到MEDIA_ROOT路径,以在本地文件系统上形成将存储上载文件的位置 .

    所以,只需删除:

    file = models.FileField(upload_to="attachments/%Y/%m/%d/", null=True)
    

    但是,您需要在db中重新创建具有不正确值的实例 .

相关问题