Django forms.ModelForm - заполнитель не отображается - PullRequest
0 голосов
/ 21 апреля 2019

В моем forms.py есть следующий код:

class CandidateSignUpForm(forms.ModelForm):
first_name = forms.CharField(max_length=50)
last_name = forms.CharField(max_length=50)

class Meta:
    model = User
    fields = ('__all__')
    widgets = {
        'first_name': forms.TextInput(
            attrs = {
                'placeholder':'Ime',
                'class': 'validate'
            },
        ),

        'last_name': forms.TextInput(
            attrs = {
                'placeholder': _('Prezime'),
                'class': 'validate'
            },
        ),

        'email': forms.EmailInput(
            attrs = {
                'placeholder': _('E-mail'),
                'class': 'validate'
            },
        ),

        'password': forms.PasswordInput(
            attrs = {
                'placeholder': _('Lozinka'),
                'class': 'validate'
            },
        ),

    }

Часть в шаблонах - просто {{ form.first_name }}.Теперь заполнитель не работает для полей формы first_name и last_name, но работает для поля формы email.Кто-нибудь, пожалуйста, поделитесь информацией о том, что я делаю здесь не так?

1 Ответ

1 голос
/ 21 апреля 2019

Поскольку вы уже указали поля в самом классе, вам следует использовать встроенные виджеты (поскольку поле Meta для виджетов предназначено для переопределения виджетов по умолчанию).

class CandidateSignUpForm(forms.ModelForm):
    first_name = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'placeholder': 'Ime', 'class': 'validate'}))
    last_name = forms.CharField(max_length=50, widget=forms.TextInput(attrs={'placeholder': _('Prezime'), 'class': 'validate'}))

    class Meta:
        ...

https://docs.djangoproject.com/en/1.11/topics/forms/modelforms/#overriding-the-default-fields

...