我已经覆盖了clean()一些模型的方法来构造约束以满足我的数据库模式要求(因为它需要运行时信息来进行这些验证)。
现在我已经完成了大部分后端组件(模型、信号、..),现在我正在尝试为我的模型编写ModelForms 。
我想知道的是,clean()模型的方法和clean()表单侧的实现之间有什么关系吗?
如果是这样,并且表单clean()调用模型,clean()我将不必重写我的模型端clean()实现,并且能够避免代码冗余。
是的,ModelForm清洁涉及模型清洁。这就是 a 的想法ModelForm:有很多有用的默认值可以通过从模型自动构建表单对象来确定。
我通过个人经验发现了这种干净的链接,但为了支持它,我可以参考来源。
在 1.8 上,ModelForm调用模型实例full_clean方法。在 1.7 上,它clean直接调用该方法。
def full_clean(self):
# ..... snip
self._clean_fields()
self._clean_form()
self._post_clean()
Run Code Online (Sandbox Code Playgroud)
其他验证中的模型full_clean()调用: https://docs.djangoproject.com/en/1.8/ref/models/instances/clean()
self.instance.full_clean(exclude=exclude, validate_unique=False)
Run Code Online (Sandbox Code Playgroud)
self.instance.clean()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1755 次 |
| 最近记录: |