如何解决无法从ListView打开Django Admin FileFile
在我的模型类中,我有一个像这样的属性:
c_cv = models.FileField(upload_to='mysite/static/docs',max_length=254,validators=[FileExtensionValidator(['pdf']),validate_fsize],verbose_name="CV")
在我的admin.py中:
list_display = ('c_data','c_sur','c_name','c_dob','c_en','c_de','c_cv')
但是当我从管理列表页面打开时,如果我单击列表中的c_cv字段,则会出现错误,因为链接不是从127.0.0.1:8000/mysite/static/docs/file.pdf开始,而是从127.0.0.1:8000/admin/cv_list /...
我如何强制管理员使用域instad实际路径的根作为前缀来查找我的c_cv字段?
非常感谢
解决方法
您是否定义了用于查看媒体的URL?您在settings.py中将MEDIA_URL,MEDIA_ROOT设置为什么?
我已经做了类似的事情来访问上传的文件:
1。在settings.py中:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR,'media')
2。定义一个用于提供上传的媒体文件的网址:
在urls.py中:
@login_required
def protected_serve(request,path,document_root=None,show_indexes=False):
return serve(request,document_root,show_indexes)
re_path(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:],protected_serve,{'document_root': settings.MEDIA_ROOT}),
这样,我也可以停止上载文件列表的目录索引。您可以尝试
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。