【问题标题】:When to use form vs model validation?何时使用表单验证与模型验证?
【发布时间】:2013-11-16 11:14:04
【问题描述】:

只是好奇。何时使用表单验证与模型验证的最佳实践是什么? 根据我目前的理解,表单验证应该用于:

  • AJAX / HTTP 请求参数
  • 与模型不相关的表单?

另一个问题是:我有一个与模型实例大致相关的 HTML 表单,我要使用 ModelForm 吗?

【问题讨论】:

    标签: django django-forms


    【解决方案1】:

    一定要使用ModelForm,如果你的表单有点像模型对象。

    如果有一些细微的差异(例如,您不使用某些字段或者您想使用不同的错误消息等),自定义 ModelForm 然后使用 Form 并实现所有这些功能要容易得多从头开始。

    有关ModelForm 的更多参考,请查看 PyDanny 的Core Concepts of Django ModelForms

    【讨论】:

      【解决方案2】:

      我也在尝试了解表单验证和模型验证之间的区别/关系,我想分享我在阅读了几个文档后形成的笔记。

      我目前对Creating Forms from Models感兴趣

      @mariodev 分享了文档Core Concepts of Django ModelForms,这是一个良好的开端。

      ModelForms 根据模型字段定义选择验证器

      幕后的主要故事似乎是DRY 校长。 This article 很好地解释了这里的具体情况。

      好吧,这一切都是公平的。问题是“这在 Django 文档中的什么地方进行了解释”?

      我碰到了一个非常 brilliant article,上面写着:

      django 在验证过程开始时调用 form.full_clean() 方法(通过 form.is_valid(),通常在视图接收到发布的数据后立即)。

      如果我错了,请纠正我,但该行显示每次我输入数据并点击“输入”,验证过程就会开始!

      好的,现在很简单:

      这就是这一切理论上的运作方式。唯一剩下的就是实现它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-21
        • 1970-01-01
        • 1970-01-01
        • 2021-05-13
        • 2014-08-22
        • 2012-08-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多