Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django:如何在admin中上载文件_Django_Admin_Filefield - Fatal编程技术网

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"