在 Django 项目中,将输入验证与模型级验证分开是典型的做法吗?例如,验证用户名是否符合命名标准将是输入验证,验证用户是否已存在于数据库中将是模型级验证。
我一直在查看同事的代码,他们将两种类型的验证都放在表单类中(在 forms.py 中)。这是典型的设置,还是模型级验证出现在模型或 View 中更常见?
或者是否有更好的方法来解决这个问题——例如使用ModelForm
?我对 Django 相当陌生,正在尝试了解这种情况的推荐模式。
最佳答案
这是一个非常有趣的问题(对我来说)。
在我看来,所有验证代码都应该移至模型代码。这是不违反业务规则的方法。当验证代码位于模型中时,不可能忘记新表单中的某些验证或多个表单中的规则不一致。
我链接到你'Django, Raise a validation error in a model's save method'与你的问题相关的问题。在下面的问题中,您可以看到如何将代码验证从表单移动到模型。希望这个简单的介绍能够对您有所帮助。
你来自哪个框架?在您的环境中如何编写验证规则?
关于django - 在 Django 中分离表单输入和模型验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9057446/