我最近发现我可以从模型生成表单。我已经阅读了文档,并且想知道为什么有人会选择不这样做而不喜欢创建自己的表单对象。
答案 0 :(得分:4)
并非所有表单都与模型直接相关。虽然大多数情况下您最终可能会使用ModelForm,但有时您希望为更好地表达为单个表单的内容创建表单,然后您可以在视图中将数据一起修补。根据我的经验,这不常见,但有时会发生。
答案 1 :(得分:2)
重复Paolo的回答,如果您要从用户收集数据以存储在数据库中,您可能已经设置了一个模型,其中包含需要收集的信息的字段。在这种情况下,请使用ModelForm
。另一方面,有时您会有一些场景,而不是从用户收集数据,而是使用他们的输入对数据库中已存在的数据执行某些操作,也就是说,生成一个视图,该视图来自多个模型的混合信息。在这种情况下,您需要使用Form
。 Form
仍然允许您相对容易地对用户输入执行验证。