Python Django Form Field表单字段自定义小部件示例

本文将提供 python django 表单字段自定义小部件的示例。
我一步一步解释了python django表单字段自定义小部件添加。
在本文中,我们将实现一个 python django 表单字段自定义小部件的更改。
您将学习 python django 表单字段自定义小部件创建。

小部件处理 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 

输出

我希望它会帮助你……

发表评论

邮箱地址不会被公开。 必填项已用*标注