问题描述
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}),
这样,我也可以停止上载文件列表的目录索引。您可以尝试