Заполнитель в Django для входа в систему AuthenticationForm не отображается - PullRequest
0 голосов
/ 12 мая 2019

Я создаю форму входа в Django, используя AuthenticationForm. Я хочу добавить заполнители для полей имени пользователя и пароля. Атрибут placeholder не работает. Это не имеет смысла, так как у меня есть похожая форма регистрации, где все отображается правильно.

my forms.py :

class UserSignUpForm(UserCreationForm):
    username = forms.CharField(max_length=100, widget=forms.TextInput(attrs={'placeholder': 'nickname'}))
    email = forms.EmailField(required=True, widget=forms.EmailInput(attrs={'placeholder': 'e-mail'}))
    password1 = forms.CharField(max_length=100, required=True,
                               widget=forms.PasswordInput(attrs={'placeholder': 'password'}))
    password2 = forms.CharField(max_length=100, required=True,
                                widget=forms.PasswordInput(attrs={'placeholder': 'password again'}))

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


class UserLoginForm(AuthenticationForm):
    username = forms.CharField(max_length=100, widget=forms.widgets.TextInput(attrs={'placeholder': 'nickname'}))
    password = forms.CharField(widget=forms.widgets.PasswordInput(attrs={'placeholder': 'password'}))

    class Meta:
        model = AuthenticationForm
        AuthenticationFormFields = ('username', 'password')
        exclude = []

1 Ответ

1 голос
/ 13 мая 2019

Вы использовали forms.widgets.TextInput, это не правильно.

Посмотрите на документацию виджетов .В основном это будет выглядеть так:

widget=forms.TextInput(attrs={'placeholder': 'nickname'})

вместо

widget=forms.widgets.TextInput(attrs={'placeholder': 'nickname'})

Вы также можете объявить атрибут widgets, содержащий отображение <field name> => <widget instance> непосредственно в Metaвашего ModelForm подкласса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...