FormView - 指定在 POST 中发送哪些字段

Posted

技术标签:

【中文标题】FormView - 指定在 POST 中发送哪些字段【英文标题】:FormView - Specify which fields are sent in the POST 【发布时间】:2016-12-09 07:41:23 【问题描述】:

给定一个与表单关联的 FormView,一旦提交表单,一些字段将发送到 FormView(用户已填写的字段)。

问题:如何将其他字段发送到 FormView,即使用户没有填写它们(因为这些字段已经预先填充)?我需要比用户提供更多的数据才能在 form_valid

中使用

【问题讨论】:

send[ing fields] 到 FormView 是什么意思?如果我理解您想要正确执行的操作,您可以使用 FormView 类的 get_initial (docs.djangoproject.com/en/1.9/ref/class-based-views/…) 函数来预填充您的表单。如果您不希望向用户显示这些字段,请将它们隐藏在您的 Form 定义中。这是示例用法:***.com/questions/22083218/… @Siegmeyer 我的意思是...我有一个预填充的表单,用户填写他们想要的字段并将数据发送到 FormView。除此之外,我希望表单的特定字段始终与其余数据一起发送,无论用户是否填写了此特定字段(具有预填充步骤的默认值) Form 定义中的所有字段默认发送到request.POST,无论它们是隐藏的、预填充的、由用户填充的还是保持不变。表单验证后,您都可以使用form.cleaned_data 访问它们。 【参考方案1】:

如果数据不敏感,您可能希望将它们作为隐藏字段添加到表单中。在 django 中,您可以使用 FormWidget 来实现这一点。这里有一些关于 SO 的相关问题:

Change a django form field to a hidden field Django ModelForm to have a hidden input

请注意,这只是将您的数据隐藏在用户界面中,而不是浏览器中 - 如果您遇到麻烦,如果有人会以恶意更改此数据,您可以考虑将数据写入 session。

【讨论】:

以上是关于FormView - 指定在 POST 中发送哪些字段的主要内容,如果未能解决你的问题,请参考以下文章

django - 使用 FormView 和 ModelForm 更新模型

使用 FormView django 在 form_valid 中渲染模板而不是 success_url

mui框架中form控件都有哪些

jQuery框架中$.ajax()的常用参数有哪些?写一个post请求并带有发送数据和返回数据的样例

表单对象的提交方法由啥属性设定?

在 FormView 中找不到控件?