根據 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.