Django的ModelForms很酷,但我无法理解为什么你想要在你的表单中放置数据完整性规则,当它们只能在模型本身时,https://stackoverflow.com/a/18876223/1207253,继续写下“默认情况下没有这样做,正如here所解释的那样,因为它会干扰某些功能......”
我已经阅读了引用的链接和https://github.com/danielgatis/django-smart-save,但仍然不明白为什么这不是推荐的方法。这种方法有什么特点干扰?排除的字段有效。默认值有效。我错过了什么?
答案 0 :(得分:0)
我能想到的唯一缺点是,如果通过管理员保存模型,full_clean
或clean
(在save
中调用的那个)将被调用两次。不应该有任何副作用。
表单验证限制用户输入数据的方式,模型验证指定在将数据存储到数据库之前必须如何进一步处理/验证数据。因此,除非您的表单非常复杂,否则在模型中验证工作正常。
在整个项目中使用您最熟悉的并遵守它,因为这里没有强烈的约定。