Django 表單欄位自定義小部件


小部件是使用 Django 表示 HTML 輸入元素的方式。小部件用於處理 HTML 頁面的渲染以及從 POST/GET 字典中提取資料。每次在表單上指定欄位時,Django 都會使用預設小部件以適當的方式顯示資料。

Django 是大多數使用者用於進行 Web 開發的最佳框架之一。它提供許多高階功能、函式和包來設計最佳網頁並使用 Python 程式語言連線伺服器。

現在讓我們看看預設的小部件,例如,如果我們在表單中使用 `IntegerField`,則預設小部件將是 `NumberInput`。

建立小部件專案

首先,建立一個名為 `widgetproject` 的新專案,並在專案目錄中建立一個名為 `widgetapp` 的應用程式。以下是命令列中用於建立專案和應用程式的命令。

django-admin startproject widgetproject
cd widgetproject
django-admin startapp widgetapp

接下來,將建立的應用程式新增到專案 `settings.py` 檔案中可用的 `INSTALLED_APPS` 部分。

我們必須在 `widgetapp` 目錄中建立 `forms.py` 檔案,並新增需要在 html 頁面中體現的程式碼。

from django import forms
#creating a django form
class TurtorialspointForm(forms.Form):
	title = forms.CharField()
	description = forms.CharField()
	views = forms.IntegerField()

現在,為了渲染我們上面建立的表單,我們需要向其中新增一個檢視和模板,這有助於向用戶顯示錶單。因此,在 `widgetapp` 中建立 `views.py` 檔案並輸入以下程式碼。

from django.shortcuts import render
# Create your views here.
from .forms import GeeksForm
def home_view(request):
	context = {}
	form = TurtorialspointForm(request.POST or None)
	context['form'] = form
	return render(request, "home.html", context)	

接下來,我們必須建立 html 檔案來包含我們想要在網頁中顯示的表單資料。

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

最後,執行遷移以將更改應用於資料庫表並執行伺服器。

python manage.py makemigrations
python manage.py migrate
python manage.py runserver

現在,讓我們透過在應用程式目錄的 `forms.py` 檔案中指定所需的小部件來建立自定義 Django 表單小部件欄位。

from django import forms
class TurtorialspointForm(forms.Form):
	title = forms.CharField(widget = forms.Textarea)
	description = forms.CharField(widget = forms.CheckboxInput)
	views = forms.IntegerField(widget = forms.TextInput)

在輸出中,我們可以觀察到自定義小部件和我們用於表單欄位的預設小部件之間的區別。

更新於:2023年11月6日

瀏覽量:136

啟動你的職業生涯

完成課程獲得認證

開始學習
廣告