Добавьте help_text только для нескольких полей. Django - PullRequest
0 голосов
/ 10 июля 2020

У меня есть регистрационная форма, и я хочу выводить текст справки только для поля пароля. Как я могу это сделать?

Я хочу сделать что-то подобное в html

{% for field in form.visible_fields %}
    if field.name == password:
        {{ field.help_text }}
        
{% endfor %}

Мой код:

forms.py

from django.contrib.auth.forms import UserCreationForm, AuthenticationForm, UsernameField
from django.contrib.auth.models import User

class RegisterForm(UserCreationForm):
    email = forms.EmailField(required=True, label="Email")
    class Meta:
        model = User
        fields = ("username", "email")
        field_classes = {'username': UsernameField, 'email': forms.EmailField}

views.py

class RegisterFormView(FormView):
    form_class = RegisterForm
    success_url = "/login/"
    template_name = "blog/register.html"

    def form_valid(self, form):
        # Создаём пользователя, если данные в форму были введены корректно.
        form.save()
        # Вызываем метод базового класса
        return super(RegisterFormView, self).form_valid(form)

регистр. html

{% for field in form.visible_fields %}
                <div class="control-group">
                    <div class="controls">
                        <!-- Username -->
                        <label class="control-label"  for="username">{{ field.label_tag }}</label>
                        {{ field }}
                        <p>{{ field.help_text }}</p>
                    </div>
                </div>
{% endfor %}

Ответы [ 2 ]

2 голосов
/ 11 июля 2020

Вы можете проверить, равно ли field.name или field.html_name password в l oop

{% for field in form.visible_fields %}
    {{ field.label_tag }}
    {{ field }}
    <b>{% if field.name == "password" %}</b>
       {{ field.help_text }}
    {% endif %}
{% endfor %}
1 голос
/ 11 июля 2020

Так и будет.

{% for field in form.visible_fields %}
    {{ field.label_tag }}
    {{ field }}
    {% if field.name == 'password1' %}
        {{ field.help_text }}
    {% endif %}
    {% if field.name == 'password2' %}
        {{ field.help_text }}
    {% endif %}
    <br>
{% endfor %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...