@ArtemMik
Python

Как виджетам выдать свойства Django?

У меня есть класс формы, для виджетов заданы id, placeholder и т.д, для первого виджета всё ставится хорошо, а вот для другого не хочет, помогите пожалуйста, решить проблему.

forms.py
class SignupForm(UserCreationForm):
    class Meta:
        model = User
        fields = ('username', 'password1', 'first_name', 'last_name', 'email')
        widgets = {
            'username': forms.TextInput(attrs={'id': 'username', 'placeholder': 'Username', 'type': 'text'}),  #применяются стили
            'password1': forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'}),  #не применяются стили
        }
        exclude = ['first_name', 'last_name', 'email']

    def __init__(self, *args, **kwargs):
        super(SignupForm, self).__init__(*args, **kwargs)
        self.fields.pop('password2')


index.html
{% block content %}
                              <form method="post">
                                  {% csrf_token %}
                                  {{ form.username}}
                                  {{ form.password1 }}
                                  {{ form.password2 }}
                                <div class="checkbox">
                                    <input id="checkbox" type="checkbox" placeholder="Remember login details">
                                    <p>Remember login details</p>
                                </div>

                                <div class="buttonsSuccess">
                                    <button  name="login_submit"type="submit"   class="enterBtn">Enter <img src="{% static 'main/img/Right 1.png' %}" alt=""></button>
                                    <button  name="registration_submit" type="submit"   class="regBtn" >Registration</button>

                                </div>
                              {% if messages %}
                                    {% for message in messages %}
                                    <p {% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</p>
                                    {% endfor %}
                            {% endif %}

                              </form>
                            {% endblock %}
  • Вопрос задан
  • 34 просмотра
Решения вопроса 1
@ArtemMik Автор вопроса
Python
Решил проблему следующим путём

forms.py

class SignupForm(UserCreationForm):
    class Meta:
        model = User
        fields = ('username', 'password1', 'first_name', 'last_name', 'email')
        widgets = {
            'username': forms.TextInput(attrs={'id': 'username', 'placeholder': 'Username', 'type': 'text'}),
            'password1': forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'})
        }
        exclude = ['first_name', 'last_name', 'email']

    def __init__(self, *args, **kwargs):
        super(SignupForm, self).__init__(*args, **kwargs)
        self.fields['password1'].widget = forms.PasswordInput(attrs={'id': 'password', 'placeholder': 'Password', 'type': 'password'})
        self.fields.pop('password2')
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы