无法从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}),

这样,我也可以停止上载文件列表的目录索引。您可以尝试

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...