Django高级表单处理与验证实战
from django import forms
from django.core.exceptions import ValidationError
class AdvancedForm(forms.Form):
# 定义一个简单的字符串字段
your_name = forms.CharField(max_length=100)
# 定义一个清理 your_name 字段的方法
def clean_your_name(self):
data = self.cleaned_data['your_name']
if 'magic' in data.lower():
raise ValidationError('不好意思,不允许包含 "magic" 字样。')
return data
# 使用表单类进行数据验证
form = AdvancedForm(data={'your_name': 'Do some magic!'})
if form.is_valid():
print('所有数据都通过验证:', form.cleaned_data)
else:
print('表单无效:', form.errors)
这段代码定义了一个Django表单类AdvancedForm
,它包含一个字段your_name
,最大长度限制为100个字符。在clean_your_name
方法中,我们添加了自定义的验证规则,如果输入的名字包含"magic",则会触发ValidationError
。这个例子展示了如何在Django表单中进行更复杂的数据验证。
评论已关闭