簡體   English   中英

僅為少數字段添加 help_text。 Django

[英]Add help_text only for a few fields. Django

我有注冊表單,我想 output 幫助文本僅用於密碼字段。 我該怎么做?

我想在 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}

視圖.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 %}

您可以在循環中檢查field.namefield.html_name等於password

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

這會做到的。

{% 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 %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM