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

启动你的职业生涯

完成课程获得认证

开始学习
广告
© . All rights reserved.