小部件处理 HTML 的呈现,以及从对应于小部件的 GET/POST 字典中提取数据。
每当您在表单上指定字段时,Django 将使用适合要显示的数据类型的默认小部件
让我们看看下面的示例,我们将实现一个 python django 表单字段自定义小部件更改。
第 1 步:创建项目
在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:
django-admin startproject exampleapp
第 2 步:创建应用程序
python3 manage.py startapp widgets
接下来需要在settings.py文件中添加如下:
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'widgets', ]
表单字段中的默认小部件
因此,每个字段都有一个预定义的小部件,例如 IntegerField 有一个 NumberInput 的默认小部件。
创建表单类
现在让我们在 widgets/forms.py 中创建一个演示表单”, widgets/forms.py
from django import forms # creating a django form class PostForm(forms.Form): title = forms.CharField() content = forms.CharField() totalviews = forms.IntegerField() available = forms.BooleanField()
创建视图
现在要渲染这个表单,我们需要创建视图和模板,用于向用户显示表单。在 widgets/views.py 中,创建一个视图 widgets/views.py
from django.shortcuts import render from .forms import PostForm def home_view(request): context = {} form = PostForm(request.POST or None) context['form'] = form return render(request, "home.html", context)
创建模板
接下来,打开 home.html 文件并添加:
<h2>Python Django Form Field Custom Widgets Example - Tuts-Station.com</h2> <form method="POST"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit"> </form>
现在让我们通过运行来显示表单
python manage.py runserver
输出

自定义 Django 表单字段小部件
在这里,可以出于各种目的覆盖每个字段的默认小部件。要覆盖默认小部件,我们需要明确定义要分配给字段的小部件。
因此,我们可以使用小部件属性将任何小部件分配给任何字段。
创建表单类
现在让我们在 widgets/forms.py 中创建一个演示表单”, widgets/forms.py
from django import forms # creating a django form class PostForm(forms.Form): title = forms.CharField(widget = forms.CheckboxInput) content = forms.CharField(widget = forms.Textarea) totalviews = forms.IntegerField(widget = forms.TextInput) available = forms.BooleanField(widget = forms.Textarea)
创建视图
现在要渲染这个表单,我们需要创建视图和模板,用于向用户显示表单。在 widgets/views.py 中,创建一个视图 widgets/views.py
from django.shortcuts import render from .forms import PostForm def home_view(request): context = {} form = PostForm(request.POST or None) context['form'] = form return render(request, "home.html", context)
创建模板
接下来,打开 home.html 文件并添加:
<h2>Python Django Form Field Custom Widgets Example - Tuts-Station.com</h2> <form method="POST"> {% csrf_token %} {{ form.as_p }} <input type="submit" value="Submit"> </form>
现在让我们通过运行来显示表单
python manage.py runserver
输出

第 3 步:创建 URL
在本节中,我们将创建 url 来访问我们的视图。转到 urls.py widgets/urls.py 文件并按如下方式更新它: widgets/urls.py
from django.urls import path from widgets import views urlpatterns = [ path('form', views.home_view), ]
接下来,我们将要求修改您的根 preoject 文件夹的 urls.py 以更新文件。 autocomplete/urls.py
from django.contrib import admin from django.urls import path, include urlpatterns = [ path('admin/', admin.site.urls), path('', include('widgets.urls')), ]
现在让我们通过运行来显示表单
python manage.py runserver
输出

我希望它会帮助你……