表单的清理方法: 表单的清理方法主要用于对用户输入的数据进行清理和验证。下面是一个示例代码:
from django import forms
class MyForm(forms.Form):
name = forms.CharField(max_length=100)
email = forms.EmailField()
def clean_name(self):
name = self.cleaned_data.get('name')
# 对name进行清理和验证
if not name:
raise forms.ValidationError("名字不能为空")
return name
def clean_email(self):
email = self.cleaned_data.get('email')
# 对email进行清理和验证
if not email:
raise forms.ValidationError("邮箱不能为空")
return email
模型的清理方法: 模型的清理方法主要用于对模型实例的字段进行清理和验证。下面是一个示例代码:
from django.db import models
class MyModel(models.Model):
name = models.CharField(max_length=100)
email = models.EmailField()
def clean(self):
# 对字段进行清理和验证
if not self.name:
raise ValidationError("名字不能为空")
if not self.email:
raise ValidationError("邮箱不能为空")
def save(self, *args, **kwargs):
self.full_clean() # 在保存之前先进行清理和验证
super().save(*args, **kwargs)
模型字段验证器: 模型字段验证器用于对模型字段的值进行验证。下面是一个示例代码:
from django.core.exceptions import ValidationError
from django.db import models
def validate_name(value):
if not value:
raise ValidationError("名字不能为空")
def validate_email(value):
if not value:
raise ValidationError("邮箱不能为空")
class MyModel(models.Model):
name = models.CharField(max_length=100, validators=[validate_name])
email = models.EmailField(validators=[validate_email])
以上是三种常用的清理和验证方法的示例代码。根据具体的需求和场景,可以选择适合的方法来对数据进行清理和验证。