Ошибка типа: __init __ () получила неожиданный аргумент ключевого слова 'attrs' - PullRequest
0 голосов
/ 24 января 2020

Я знаю, что этот вопрос задавался много раз, но я до сих пор не могу понять его.

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 Ответ

1 голос
/ 24 января 2020

forms.CharField(...) представляет собой Django Поле формы , которое не является виджет . Используйте forms.TextInput(...) вместо

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