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_ROOT 和 MEDIA_URL