我是 MVC 架构的新手。有人能告诉我什么是表格,它们到底做什么以及它们与模型的关系。根据 django 文档,表单负责许多常见的表单相关任务。那些任务是什么?我看到在注册过程中经常提到表格,它们只是单独使用的吗?表单是否仅用作模型字段的 POST 请求?如果在 Modelform/forms 中是这样,我们不能拥有与现有模型无关的字段?
谢谢!
我是 MVC 架构的新手。有人能告诉我什么是表格,它们到底做什么以及它们与模型的关系。根据 django 文档,表单负责许多常见的表单相关任务。那些任务是什么?我看到在注册过程中经常提到表格,它们只是单独使用的吗?表单是否仅用作模型字段的 POST 请求?如果在 Modelform/forms 中是这样,我们不能拥有与现有模型无关的字段?
谢谢!
从概念上讲,表单充当在 HTML 中输入数据的处理程序,以便在应用程序的某处(在您的视图中)使用该数据。
您会发现 Django 中的表单有两种常见用途:使用模型(由数据库定义的数据)或用于完成某种任务(例如发送电子邮件 - 您不一定需要)关联模型)。
表单为这两个功能做了很多事情。这些范围从模块化、可扩展性和易于管理(因为它们可以在 Python 中轻松定义、互换、继承等)到验证(其中一个大问题)。验证至关重要 - 这可能就是您在注册方面所指的内容。Django Forms 将根据您的 Form 类中定义的定义进行验证,或者如果您使用的是 ModelForm 之类的东西,则继承验证代码。在 ModelForm 的情况下,Form 将根据您分配给模型字段的属性进行验证(即,没有字符串输入到整数字段中)。
考虑到我前面提到的两种常见用途,因此您应该查看文档的相关链接。
https://docs.djangoproject.com/en/dev/topics/forms/ https://docs.djangoproject.com/en/dev/topics/forms/modelforms/
回答您的其他一些问题。您可以在 ModelForms 中拥有与您的模型无关的字段 - 但您必须在视图中适当地处理它们。您也不一定需要在表单中输入所有模型字段(在 Meta 类中使用 exclude)。