Django:如何在admin中上载文件
我试图创建一个链接下载一个文件在管理,但它不工作 我的模型Django:如何在admin中上载文件,django,admin,filefield,Django,Admin,Filefield,我试图创建一个链接下载一个文件在管理,但它不工作 我的模型 class Event(models.Model): ...... file = models.FileField(_('fichier'), upload_to='medias', null=True, blank=True) def file_(self): if self.file: return "<a href='%s'>download<
class Event(models.Model):
......
file = models.FileField(_('fichier'), upload_to='medias', null=True, blank=True)
def file_(self):
if self.file:
return "<a href='%s'>download</a>" % (self.file.url,)
else:
return "No attachment"
我得到一个错误:
异常值:
'EventAdmin.fieldsets[0][1]['fields']'引用的字段'file_3;'
表单中缺少
这是什么问题?
文件是模型中的一个函数。只能显示字段集中的字段。有效字段应该是文件
本身,而不是函数文件
我还将在模板中而不是模型中构造HTML(我甚至不确定这是否与您目前所做的一样有效)
假设将视图中的对象事件
传递给模板。因此,您可以在HTML模板文件中使用:
{% if event.file %}
<a href="{{ event.file.url }}">Download</a>
{% else %}
No attachment
{% endif %}
{%if event.file%}
{%else%}
无附件
{%endif%}
您应该这样定义管理员:
class EventAdmin(admin.ModelAdmin):
list_display = ('title', 'start', 'end', 'user', 'fin', 'frequency', 'file_link',)
fieldsets = (
(None, {
'fields': ('title','start', 'end', 'is_cancelled', 'calendar', 'user', 'description', ('frequency', 'fin' ), 'activated', 'file',)
}),
def file_link(self, obj):
if obj.file:
return "<a href='%s'>download</a>" % (obj.file.url,)
else:
return "No attachment"
class EventAdmin(admin.ModelAdmin):
列表显示=(‘标题’、‘开始’、‘结束’、‘用户’、‘财务’、‘频率’、‘文件链接’、)
字段集=(
(无{
‘字段’:(‘标题’、‘开始’、‘结束’、‘已取消’、‘日历’、‘用户’、‘说明’、(‘频率’、‘财务’)、‘已激活’、‘文件’、)
}),
def文件链接(自身、obj):
如果是obj.file:
返回“”%(obj.file.url)
其他:
返回“无附件”
我只想在管理中打开文件,而不是在模板中打开。哦,好的,对不起,我不知道。但是您的一个错误是由文件引起的,它不是字段,而是函数。
class EventAdmin(admin.ModelAdmin):
list_display = ('title', 'start', 'end', 'user', 'fin', 'frequency', 'file_link',)
fieldsets = (
(None, {
'fields': ('title','start', 'end', 'is_cancelled', 'calendar', 'user', 'description', ('frequency', 'fin' ), 'activated', 'file',)
}),
def file_link(self, obj):
if obj.file:
return "<a href='%s'>download</a>" % (obj.file.url,)
else:
return "No attachment"