Django 模型表单小部件分配在元类中不起作用
我正在尝试为ModelForm中的字段设置一个小部件。我想在Django 模型表单小部件分配在元类中不起作用,django,django-forms,Django,Django Forms,我正在尝试为ModelForm中的字段设置一个小部件。我想在类Meta部分使用其他覆盖设置它,但这似乎不起作用: class Meta: model = Client fields = ['name',] widget = { 'name': forms.TextInput(attrs={ 'class': u'form-control'}) } 只有这样才能起作用: name = forms.CharField(widg
类Meta
部分使用其他覆盖设置它,但这似乎不起作用:
class Meta:
model = Client
fields = ['name',]
widget = {
'name': forms.TextInput(attrs={
'class': u'form-control'})
}
只有这样才能起作用:
name = forms.CharField(widget=forms.TextInput(attrs={
'class': u'form-control'}))
class Meta:
model = Client
fields = ['name',]
其他覆盖,如标签、错误消息等,在元类中指定时都可以工作
我应该如何在元类中定义一个wdiget以使其如上所述工作。您忘记了一个“s”(它的小部件不是小部件),而且您不需要表单。小部件,只是小部件
class Meta:
model = Client
fields = ('name',)
widgets = {
'name': TextInput(attrs={
'class': u'form-control'})
}
说不是这样。该死好球!如果我要覆盖现有的ModelForm,比如UserCreationForm,我发现我仍然需要设置Meta类之上的所有内容以实现覆盖您要覆盖的内容,这意味着原始表单中声明的字段不受Meta的影响:
声明性定义的字段保持原样,因此,对元属性(如小部件、标签、帮助文本或错误消息)所做的任何自定义都将被忽略;这些仅适用于自动生成的字段。
要覆盖它们,必须在元上方定义它们并在那里配置属性。