django-tricks:避开ModelForm的Model的验证

当时情况是这样的,客户希望用自己提出的email验证标准而不是django自己带的,我照着做了,虽然那个验证规则挺2的:实际上有些数据在他们的规则合法,但是再django的email验证中就是失败的。

问题就在这里,我在form中重新声明了email字段,然后定义了clean_email方法来实现定制email验证规则,我以为这样可以避开django自带的验证,但失败了。

后来经过一番源码跟踪(django的model跟form源码看着好晕),发现BaseModelForm有个叫_get_validation_exclusions的方法,这个方法会返回一个包含需要避开model 验证的(不包括form里的clean_*等验证方法)的属性名称列表。

注:看源码是很久以前的事情了,写这篇博客只是为了记住这个方法名称。

你可能感兴趣的:(django-tricks:避开ModelForm的Model的验证)