TypeError:__init __()获得了意外的关键字参数“ attrs”

时间:2020-01-24 02:11:07

标签: django django-forms

我知道这个问题已经问过很多次了,但我仍然无法弄清楚。

from django.contrib.auth.forms import UserCreationForm
from django.forms import ModelForm
from django import forms
from . models import Profile
from django.contrib.auth.models import User

ACCOUNT_TYPE = [
    ('SPO', 'SPO'),
    ('Call Agent', 'Call Agent'),
    ('Accountant', 'Accountant'),
]

class CreateUserForm(UserCreationForm):
    name            = forms.CharField(max_length=255, required=False)
    account_type    = forms.ChoiceField(choices = ACCOUNT_TYPE)


    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

        widgets = {
                    'name': forms.CharField(attrs={'class': 'form-control','required':'required'}),
                    'account_type': forms.ChoiceField(attrs={'class': 'form-control','required':'required'})
                  }

我在做什么错。我做了所有可能的更改,但没有任何更改。 预先谢谢你

1 个答案:

答案 0 :(得分:1)

forms.CharField(...) Django表单字段 ,而不是widget。请改用forms.TextInput(...)

widgets = {
    'name': forms.TextInput(attrs={'class': 'form-control', 'required': 'required'}),
    'account_type': forms.TextInput(attrs={'class': 'form-control', 'required': 'required'})
}