Django - 如何设置forms.FileField名称

时间:2012-03-02 12:44:37

标签: python django

我想在我的管理表单中将自定义名称设置为FileField对象,这样它的html名称属性将不等于我的实例字段名称。

class MyAdminForm(forms.ModelForm):
    file_field = forms.FileField()

    def __init__(self, *args, **kwargs):                                    
        if kwargs.has_key('instance'):
            instance = kwargs['instance']
            self.initial['image_file'] = instance.file_field

使用此代码,我得到< input type =“file”name =“file_field”/>而我想要做的是将其名称属性设置为其他内容。

编辑:

我接受了下面的答案,但我有另一个问题。是否可以构造可变数量的FileField对象?我的意思是 - 如果我现在想要有4个,但在某些情况下只有一个呢?我是否必须将所有这些声明为类字段,如file_field1,file_field2等,或者是否可以将它们添加到字典中,如:{'file_field1:FileField(),'file_field2':FileField() } - 我实际上尝试了它并得到了一个错误...

1 个答案:

答案 0 :(得分:2)

HTML中的name属性与表单定义中的名称相同,因此如果您不希望它为file_field,则不要将其称为file_field

class MyAdminForm(forms.ModelForm):
    new_field = forms.FileField()
    # Rest of the form goes here