Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 何时使用表单与模型验证?_Django_Django Forms - Fatal编程技术网

Django 何时使用表单与模型验证?

Django 何时使用表单与模型验证?,django,django-forms,Django,Django Forms,只是好奇。何时使用表单与模型验证的最佳实践是什么? 据我目前了解,表单验证应用于: AJAX/HTTP请求参数 与模型不相关的表单 另一个问题是:我有一个与模型实例大致相关的HTML表单,我使用ModelForm吗?如果表单与模型对象非常相似,那么一定要使用ModelForm 如果存在一些细微的差异(例如,您不使用某些字段或希望使用不同的错误消息等),则定制ModelForm要容易得多,然后使用Form从头开始实现所有这些功能 有关ModelForm的更多参考信息,请查阅Pydenny的。我

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

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

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

如果表单与模型对象非常相似,那么一定要使用
ModelForm

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


有关
ModelForm
的更多参考信息,请查阅Pydenny的。

我还试图了解表单和模型验证之间的区别/关系,我想分享我在阅读多个文档后形成的注释

我现在对

@马里奥德夫分享了这份文件,这提供了一个良好的开端

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

幕后的主要故事似乎是主角。很好地解释了这里的具体情况

好吧,这一切都是公平的。问题是“在Django文档中这是在哪里解释的”

我撞到了一个非常危险的地方,上面写着:

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

如果我错了,请更正,但该行显示每次我输入数据并点击“回车”时,验证过程开始

好了,这很简单:

  • 当我们点击“回车”键时,开始

  • Django首先检查每个适用的验证方法,(这是模型字段子类的文档,而不是表单字段子类的文档)和(因为它是一个ModelForm)

  • 最后,验证了算法的有效性

这就是所有这些在理论上的运作方式。唯一剩下的就是实施它