本文介绍了在init方法中设置Django ModelForm中所有字段的属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有一个Django ModelForm,在其中我以__init__()
方法的形式设置了某些表单属性.
I have a Django ModelForm where I set certain form attributes in the form __init__()
method.
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
exclude = ['datecreated', 'datemodified']
def __init__(self, *args, **kwargs):
super(MyForm, self).__init__(*args, **kwargs)
self.fields['field1'].widget.attrs['class'] = 'class1'
self.fields['field2'].widget.attrs['class'] = 'class1'
self.fields['field3'].widget.attrs['class'] = 'class1'
# override Google Chrome field error issues making form unfocusable
self.fields['field1'].required = False
self.fields['field2'].required = False
self.fields['field3'].required = False
是否可以设置表格中包含的所有字段的属性,而无需分别为每个字段写self.fields?
Is there away to set attributes of all fields included in the form without writing self.fields for each one individually?
推荐答案
self.fields
是普通命令,您可以对其值进行迭代:
self.fields
is a normal dict, you can just iterate over its values:
for field in self.fields.values():
field.widget.attrs['class'] = 'class1'
field.required = False
这篇关于在init方法中设置Django ModelForm中所有字段的属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!