根据 Django 表单中的字段类型更改标签文本

Vaibhav Vaibhav 2021年6月29日
根据 Django 表单中的字段类型更改标签文本

Django 是一个多样化的 Web 框架,具有强大的功能。它可以轻松处理复杂的任务,例如身份验证、会话、电子邮件等。它使我们能够创建动态 HTML 页面、高效处理数据库、快速设计表单、使用 Django 的模板语言在 HTML 模板中显示数据等。

一般而言,有时我们必须将某些特定值用于其他特定值。把它想象成一个键值对。特定键具有与其关联的特定值。

如果我们必须根据字段类型改变标签名称或在 Django 中为特定字段显示特定文本怎么办?这篇文章也谈到了同样的事情。

使用 Django 模板语言更改标签名称

在 HTML 文件中,使用 Django 的模板语言,我们可以使用以下语句访问字段类型。

{{ fieldName.field.widget.input_type }}

使用这个技巧,我们可以根据字段类型改变标签名称。

在模板视图的上下文字典中,添加以下内容。

"fieldLabels": [
    ("text", "Label for Text Field"),
    ("password", "Label for Password Field"),
    ("file", "Label for File Field"),
    ("number", "Label for Number Field"),
    ...,
]

上面的列表以 ("field type", "label text") 格式存储元组。我们可以在模板中迭代这些元组,并根据 if 条件显示所需的信息。

在模板中,做这样的事情。

{% for field in form.visible_fields %}  
        {% for fieldName, label in fieldLabels %}
            {% if fieldName == field.field.widget.input_type  %}
                <div>
                    <label>{{ label }}</label>
                    {{ field }}
                </div>
            {% endif %}
        {% endfor %}
{% endfor %}

上面的代码迭代每个表单字段的所有 fieldLables 值,如果字段名称匹配,则显示其各自的标签文本。

作者: Vaibhav Vaibhav
Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.