Django 表单比较验证示例

在本示例中,您将学习 django 表单比较验证示例。
我逐步解释了 django form auth 比较验证示例。
我逐步解释了 django 表单验证比较示例教程。
让我们讨论一下 django 表单验证示例。

在 Django 表单验证比较中,我们将学习任意两个表单字段并根据需要生成结果。为了进一步理解这个主题,让我们看一个例子。

从结果中可以看出,当我们传入相同的名字和姓氏时,它会产生一个验证错误。

让我们看看下面我简单解释的关于 django 表单比较验证示例的示例。

第 1 步:创建项目

在这一步中,我们将使用 django-admin 创建一个新的 django 项目。返回命令行界面并运行以下命令:

django-admin startproject exampleapp

第 2 步:创建应用程序

现在我们将创建一个名为 polls 的应用程序来存储帖子名称列表。我们有意保持基本。使用 Control+c 停止本地服务器并使用 startapp 命令创建这个新应用程序。

 python3 manage.py startapp core 

第三步:更新setting.py

接下来,在这一步中,我们需要在我们的 settings.py 文件中做两件事,一是我们安装的应用程序名称 将以下行添加到您的 settings.py 文件中:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'core',
]

第 4 步:创建表单

首先在这一步中,我们将创建一个名为forms.py的新文件,并创建一个您需要使用 Django Form Class 的 Django 表单
core/forms.py

from django import forms
from matplotlib import widgets
from django.contrib.auth import password_validation

class EmpRegistration(forms.Form):
    first_name = forms.CharField(label='First Name',
                                widget=forms.TextInput(attrs={
                                    'class': 'form-control'
                                })
                            )
    last_name = forms.CharField(label='Last Name',
                                widget=forms.TextInput(attrs={
                                    'class': 'form-control'
                                })
                            )
    email = forms.EmailField(label='Email',
                                widget=forms.TextInput(attrs={
                                    'class': 'form-control'
                                })
                            )

    def clean(self):
        cleaned_data = super().clean()
        fname = self.cleaned_data['first_name']
        lname = self.cleaned_data['last_name']

        if fname == lname:
            raise forms.ValidationError('First Name and Last Name should not be same')

第 5 步:创建视图

在这一步中,我们需要创建视图来执行 post 请求数据被清理到cleaned_data 方法。打开 core/views.py 文件并添加:
core/views.py

from django.shortcuts import render
from .forms import EmpRegistration

def detail_form(request):
    if request.method == "POST":  
        form = EmpRegistration(request.POST)
        if form.is_valid():
            print('First Name:', form.cleaned_data['first_name'])
            print('Last Name:', form.cleaned_data['last_name'])
            print('Email:', form.cleaned_data['email'])
    else:
        form =EmpRegistration()
    return render(request,'home.html',{'form':form})  

第 6 步:创建模板

接下来,打开 core/templates/home.html 文件并添加:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Tuts-Station.com</title>
    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@4.6.1/dist/css/bootstrap.min.css">
    <style type="text/css">
        body{
            background-color: #f7fcff;
        }
    </style>
</head>
<body>
    <div class="container mt-5">
        <div class="row d-flex justify-content-center">
            <div class="col-md-8">
                <div class="card">
                    <div class="card-header">
                        <h4>Django Form Compare Validation Example - <span class="text-primary">Tuts-Station.com</span></h4>
                    </div>
                    <div class="card-body">
                        <form method = "post" enctype="multipart/form-data">
                            {% csrf_token %}
                            {{ form.as_p }}
                            <button type="submit" class="btn btn-success">Submit</button>
                        </form>
                    </div>
                </div>
            </div>
        </div>
    </div>
</body>
</html>

第 7 步:创建 URL

在本节中,我们将创建 url 来访问我们的视图。转到 urls.py core/urls.py 文件并按如下方式更新它:
core/urls.py

from django.urls import path, include
from . import views

urlpatterns = [
    path('', views.detail_form,name='detail_form'),
]

接下来,我们将要求修改您的根 preoject 文件夹的 urls.py 以更新文件。
exampleapp/urls.py

from django.contrib import admin
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('core.urls')),
]

运行服务器

在这一步中,我们将运行本地开发服务器来玩我们的应用程序,而无需将其部署到网络上。

 python manage.py runserver 

接下来,使用网络浏览器转到 url 地址栏。

http://localhost:8000/

我希望它会帮助你……

发表评论

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