Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.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 模型表单小部件分配在元类中不起作用_Django_Django Forms - Fatal编程技术网

Django 模型表单小部件分配在元类中不起作用

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

我正在尝试为ModelForm中的字段设置一个小部件。我想在
类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的影响:
声明性定义的字段保持原样,因此,对元属性(如小部件、标签、帮助文本或错误消息)所做的任何自定义都将被忽略;这些仅适用于自动生成的字段。
要覆盖它们,必须在元上方定义它们并在那里配置属性。