在 Django 中,表单验证是通过使用表单类和验证器来实现的。

首先,需要定义一个表单类,该类继承自 Django 的forms.Form 或者 forms.ModelForm。然后,在表单类中定义各个字段以及它们的验证规则。

以下是一个示例:

from django import forms

class MyForm(forms.Form):
    name = forms.CharField(max_length=100)
    email = forms.EmailField()
    password = forms.CharField(widget=forms.PasswordInput)

    def clean_name(self):
        name = self.cleaned_data['name']
        # 自定义验证规则
        if len(name) < 3:
            raise forms.ValidationError('名字太短了!')
        return name

    def clean_email(self):
        email = self.cleaned_data['email']
        # 自定义验证规则
        if len(email) < 5:
            raise forms.ValidationError('邮箱太短了!')
        return email

在上面的示例中,MyForm 类定义了三个字段:nameemailpasswordclean_nameclean_email 方法是用来进行自定义的验证规则。

接下来,在视图函数中使用表单类来处理用户提交的数据,并进行验证:

from django.shortcuts import render
from .forms import MyForm

def my_view(request):
    if request.method == 'POST':
        form = MyForm(request.POST)
        if form.is_valid():
            # 验证通过,处理表单数据
            name = form.cleaned_data['name']
            email = form.cleaned_data['email']
            password = form.cleaned_data['password']
            # 其他处理逻辑...
    else:
        form = MyForm()
    
    return render(request, 'my_template.html', {'form': form})

在上面的示例中,如果请求方法是 POST,就创建一个表单实例,并将用户提交的数据传递给表单实例。然后,使用 is_valid() 方法来进行验证。如果验证通过,可以通过 cleaned_data 属性获取验证后的数据。

最后,在模板中使用表单对象来渲染表单:

<form method='post' action='{% url 'my_view' %}'>
    {% csrf_token %}
    {{ form.as_p }}
    <input type='submit' value='提交'>
</form>

以上是 Django 中表单验证的基本步骤。可以根据具体需求进行自定义验证规则和错误信息的处理。

Django 表单验证指南 - 从入门到精通

原文地址: https://www.cveoy.top/t/topic/eCtw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录