在我的模型类中,我有一个类似这样的属性:
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')但是当我从管理列表页面打开时,如果我点击列表中的静态字段,我会得到一个错误,因为链接不是从127.0.0.1:8000/mysite/ c_cv /docs/file.pdf开始的,而是从127.0.0.1:8000/ admin /cv_ list /...开始的。
如何强制管理员使用域根安装实际路径作为前缀来查看我的c_cv字段?
在此之前我要谢谢你
发布于 2020-09-25 02:55:10
您是否定义了用于查看媒体的URL?您在settings.py中将MEDIA_URL、MEDIA_ROOT设置为什么?
我做了一些类似的操作来访问上传的文件:
1.在settings.py中:
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')2.定义了一个url,用于服务上传的媒体文件:
在urls.py中:
@login_required
def protected_serve(request, path, document_root=None, show_indexes=False):
return serve(request, path, document_root, show_indexes)
re_path(r'^%s(?P<path>.*)$' % settings.MEDIA_URL[1:], protected_serve, {'document_root': settings.MEDIA_ROOT}), 这样,我还可以停止目录索引的文件的列表是uploaded.You可以尝试这样做
https://stackoverflow.com/questions/64050936
复制相似问题