首页 > 解决方案 > 仅为少数字段添加 help_text。姜戈

问题描述

我有注册表单,我只想为密码字段输出帮助文本。我该怎么做?

我想在 html 中做这样的事情

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

我的代码:

表格.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}

视图.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 %}

标签: pythondjango

解决方案


您可以在循环中检查是否field.namefield.html_name等于password

{% for field in form.visible_fields %}
    {{ field.label_tag }}
    {{ field }}
    {% if field.name == "password" %}
       {{ field.help_text }}
    {% endif %}
{% endfor %}

推荐阅读