Django 1.6
我已经经历过文档,StackOverflow和git讨论。不过,我仍然有一些疑问。
1-如果我在模型字段中定义验证器,那么我以forms.form
或forms.ModelForm
形式使用的内容是否重要?
2-如果我要在模型清洁方法中进行验证,那我应该如何处理那里的验证错误(基本上是显示模板)?通常我会收到500台服务器错误。
3-从模型字段验证器引发错误会影响DRF序列化程序,还是会显示错误消息?
4-如果必须使用forms.ModelForm
,那么在使用forms.form
的同时如何实现类似的功能?
现在,我在表单和模型字段中使用forms.form
,已经完成了以下工作。
def validate_name(value, message=None, code=None,):
"""
Validation ensures a value consists of only letters, space and dot.
"""
reg = re.compile("^[\\p{L} .]+$")
if not reg.match(value):
raise ValidationError(message or _("Invalid - Allowed characters: a-z, A-Z, space, dot."), code=code or 'invalid_name')
模型字段
first_name = models.CharField(_('first name'), max_length=200, blank=True, validators=[validate_name])
现在要执行validate_name,我需要调用full_clean()
并最终遇到500个服务器错误。
任何更好的方法或建议都可以对模型进行全局验证。