我想在我的管理表单中将自定义名称设置为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() } - 我实际上尝试了它并得到了一个错误...
答案 0 :(得分:2)
HTML中的name属性与表单定义中的名称相同,因此如果您不希望它为file_field
,则不要将其称为file_field
。
class MyAdminForm(forms.ModelForm):
new_field = forms.FileField()
# Rest of the form goes here