自定义usercreationform在django中的显示方式

Apo*_*los 4 django django-forms

我想从django自定义UserCreationForm.我做了以下事情

class myUserCreationForm(UserCreationForm):


    class Meta:
        model=User
        fields = ('username', 'password1', 'password2')
        widgets = {
            'username':TextInput(attrs={'class':'form-control'}),
            'password':TextInput(attrs={'class':'form-control'}),
            'password2':TextInput(attrs={'class':'form-control'}),
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用.渲染模板时创建输入框没有附加表单控件类.可能有什么不对?

TH2*_*H22 13

在遇到同样的问题时,我偶然发现了这一点.您可以在myUserCreationForm类上覆盖init方法来设置表单的属性.

class myUserCreationForm(UserCreationForm):

class Meta:
    model=User
    fields = ('username', 'password1', 'password2')

def __init__(self, *args, **kwargs):
    super(myUserCreationForm, self).__init__(*args, **kwargs)

    self.fields['username'].widget.attrs['class'] = 'form-control'
    self.fields['password1'].widget.attrs['class'] = 'form-control'
    self.fields['password2'].widget.attrs['class'] = 'form-control'
Run Code Online (Sandbox Code Playgroud)


dha*_*ana 2

您需要从 sctratch 创建表单,它不应扩展 UserCreationForm。UserCreationForm 有一个明确定义的用户名字段以及一些其他字段。你可以在这里查看。