【问题标题】:FormView - Specify which fields are sent in the POSTFormView - 指定在 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 定义中。这是示例用法:stackoverflow.com/questions/22083218/…
  • @Siegmeyer 我的意思是...我有一个预填充的表单,用户填写他们想要的字段并将数据发送到 FormView。除此之外,我希望表单的特定字段始终与其余数据一起发送,无论用户是否填写了此特定字段(具有预填充步骤的默认值)
  • Form 定义中的所有字段默认发送到request.POST,无论它们是隐藏的、预填充的、由用户填充的还是保持不变。表单验证后,您都可以使用form.cleaned_data 访问它们。

标签: django django-forms


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-20
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多