Django MEDIA_URL 附加完整的 MEDIA_ROOT

Posted

技术标签:

【中文标题】Django MEDIA_URL 附加完整的 MEDIA_ROOT【英文标题】:Django MEDIA_URL appending full MEDIA_ROOT 【发布时间】:2021-01-04 22:15:55 【问题描述】:

在 Django 3 中,我的设置中有这个:MEDIA_URL = '/media/'

我的 MEDIA_ROOT 正确回显 (/home/bradrice/source/repos/bb_backend/media ) 我的网址中有这个:

如果设置.DEBUG: urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

我正在使用 VersatileImageField 并且图像上传到正确的媒体文件夹。但是,我在 Admin 中看不到图像,如果我单击链接,它会在 URL 前面加上完整的 MEDIA_ROOT 而不仅仅是 /media/ 到显示 url。

我做错了什么。

【问题讨论】:

【参考方案1】:

我的错误。在我的模型中,我有这段代码来制作上传路径:

def艺术品目录路径(实例,文件名):

# file will be uploaded to MEDIA_ROOT / user_<id>/<filename> 
return MEDIA_ROOT + '/artwork/0'.format(filename) 

然后在我的图像模型中,我有 upload_to=artwork_directory_path。

我刚刚将它硬编码为 upload_to="artwork" ,一切都开始工作了。

【讨论】:

以上是关于Django MEDIA_URL 附加完整的 MEDIA_ROOT的主要内容,如果未能解决你的问题,请参考以下文章

[django]media_url

Django - MEDIA_ROOT 和 MEDIA_URL

MEDIA_URL 在 Django 1.4 中为空

Django MEDIA_URL 空白 @DEPRECATED

Django:MEDIA_URL 返回页面未找到

Django - MEDIA_URL 仍然与 S3BotoStorage 相关吗?