{{ form.as_ul }} – 將 Django 表單渲染為列表


Django 徹底改變了網路工程,使全球的開發人員都能輕鬆便捷地使用它。其顯著的特點是強大的表單作業系統,它簡化了 Web 表單的開發,同時還方便地實現了表單的驗證和處理。專注於將這些表單顯示為 HTML 列表為使用者提供了許多好處,例如由於易於自定義功能而帶來的高階樣式設計可能性,以及增強的響應能力和更高的可訪問性。

本文深入探討了有效地將 Django 表單顯示為列表的細微差別,闡明瞭其眾多優勢,詳細介紹了實施的簡單步驟,並提供了最佳實踐以獲得最佳結果。透過仔細閱讀本文件,您也可以在使用 Django 的強大表單操作功能建立網站時提高效率!

為什麼要將 Django 表單顯示為列表?

將 Django 表單顯示為列表為 Web 開發人員提供了多種優勢

自適應樣式:列表提供了一個靈活的樣式框架,簡化了建立視覺吸引力和響應式表單佈局的過程。

在當今時代,擁有響應式設計至關重要。列表透過流暢地適應各種螢幕尺寸和裝置來提供此功能,從而確保每個使用者在不同平臺上都能體驗到一致性。

同樣重要的是要強調將表單顯示為列表如何透過減少開發人員手動編寫 HTML 和 CSS 程式碼來提高可維護性。這將大大簡化隨著時間的推移維護和更新表單的過程。

最後,在顯示錶單時利用列表解決了殘疾使用者的可訪問性問題,因為它允許螢幕閱讀器更好地理解所有元件之間的關係。

如何將 Django 表單顯示為列表

現在我們已經瞭解了將 Django 表單顯示為列表的好處,讓我們深入瞭解此過程涉及的步驟。

建立 Django 表單

在 forms.py 檔案中識別表單類對於建立 Django 表單至關重要。繼承自 django.forms.ModelForm 或 django.forms.Form 可以有效地完成此任務。

  • 匯入所需的模組:來自 django 包的 forms 以及來自當前應用程式 models.py 檔案的 UserProfile 模型。

  • 建立一個名為 UserProfileForm 的表單類,該類繼承自 forms.ModelForm。

  • 在 UserProfileForm 類中,建立一個巢狀的 Meta 類。

  • 將 Meta 類的 model 屬性設定為 UserProfile 模型。這通知 Django 該表單將用於建立或修改 UserProfile 例項。

  • 在 Meta 類的 fields 屬性中列出欄位名稱。這些是將包含在表單中的欄位。

from django import forms
from .models import UserRegistration

class UserRegistrationForm(forms.ModelForm):
    class Meta:
        model = UserRegistration
        fields = ['first_name', 'last_name', ‘roll_no’, 'password']

利用 Django 的 as_ul 方法

接下來,我們將利用 Django 的內建方法將表單顯示為無序列表 - as_ul 方法。在您的模板中,您可以像這樣在表單例項上呼叫 as_ul 方法

  • 建立一個 HTML 表單元件,其屬性 method="POST" 表示表單在提交資料時將使用 POST 方法。

  • 呼叫 {% csrf_token %} 格式標籤以在表單中包含 CSRF 令牌,這有助於防止跨站點請求偽造攻擊。

  • 建立一個 HTML 無序列表 (ul) 元素。

  • 在 ul 元素內,呼叫 {{ form.as_ul }} 模板標籤以將 Django 表單顯示為列表。這將為每個表單欄位生成所需的 HTML,每個欄位都顯示在其自己的列表項 (li) 元素中。

  • 包含一個具有屬性 type="submit" 的 HTML 輸入元素以構建表單的提交按鈕。

<form method="POST">
  {% csrf_token %}
  <ul>
    {{ form.as_ul }}
  </ul>
  <input type="submit" value="Submit">
</form>

更改列表外觀

您可以透過將 CSS 類或內聯樣式附加到 ul 元素來方便地修改列表的外觀。例如

  • 將 CSS 類 (class="form−list") 附加到 ul 元素以使用外部或內部 CSS 規則應用自定義樣式。

  • 使用 style 屬性將內聯樣式分配給 ul 元素。在本例中,我們透過將 padding−left 設定為 0 來刪除列表的預設左填充。

<ul class="form-list" style="padding-left: 0;">
  {{ form.as_ul }}
</ul>
  • 讓我們看一下完整的程式碼

from django import forms
from .models import UserRegistration

class UserRegistrationForm(forms.ModelForm):
    class Meta:
        model = UserRegistration
        fields = ['first_name', 'last_name', '‘roll_no’, 'password']

<form method="POST">
  {% csrf_token %}
  <ul>
    {{ form.as_ul }}
  </ul>
  <input type="submit" value="Submit">
</form>

<ul class="form-list" style="padding-left: 0;">
  {{ form.as_ul }}
</ul>

輸出

我們已成功將 Django 表單渲染為列表。這是包含四個欄位的終端使用者登錄檔單。

將 Django 表單顯示為列表的最佳實踐

為了確保最佳的使用者體驗和可維護性,在將 Django 表單顯示為列表時,請遵循以下最佳實踐

  • 使用語義標記:使用適當的列表元件(如 ol 和 li)來提供更好的上下文和提高可訪問性。

  • 包含標籤和佔位符:確保為每個表單欄位包含標籤以及佔位符,以指導使用者完成表單填寫過程。

  • 實施響應式設計:透過使用 CSS 媒體查詢或提供響應式列表類的 CSS 框架(如 Bootstrap)來確保您的列表具有響應性。

  • 提高可訪問性:將 ARIA 屬性和角色新增到您的列表中,以提高殘疾使用者的可訪問性。

  • 個性化錯誤訊息:當表單驗證失敗時,向用戶提供清晰且資訊豐富的錯誤訊息。您可以在表單類中為各個欄位個性化錯誤訊息,或者使用 {{ form.errors }} 模板標籤在表單頂部顯示錯誤列表。

  • 使用 JavaScript 進行即時驗證:透過使用 JavaScript 提供即時表單驗證來增強使用者體驗。這可以幫助使用者在提交表單之前識別和糾正錯誤,從而減少失敗提交和伺服器端驗證的數量。

結論

將 Django 表單顯示為列表提供了許多好處,例如自適應樣式、改進的響應能力、增強的可維護性和增強的可訪問性。透過遵循本文中概述的步驟並堅持最佳實踐,您將能夠使用 Django 建立簡化、使用者友好且可行的 Web 應用程式。

在繼續提高您的 Django 技能時,請記住要了解最新的最佳實踐、工具和方法,以確保您的專案始終高效、安全和使用者友好。編碼愉快!

更新於: 2023年7月10日

212 次檢視

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告

© . All rights reserved.