【问题标题】:How do I redirect a Django form submit to a new tab after form validation?如何在表单验证后将 Django 表单提交重定向到新选项卡?
【发布时间】:2020-05-07 16:26:53
【问题描述】:
  1. 我有一个带有两个下拉整数字段和一个提交按钮的 Django 表单。
  2. 用户从这些下拉字段中选择值并点击提交按钮。
  3. Django 模板执行表单“发布”并将这两个下拉值发送到我的 Django 视图。
  4. Django 视图通过验证这两个下拉字段值来执行表单验证。
  5. 如果表单无效,它会将错误消息发送到 Django 模板,我可以在表单上方的同一表单页面上显示错误消息。
  6. 如果表单是有效的,那么它将重定向到一个新的 URL。

问题:如何告诉我的 Django 视图仅在表单有效后才将 URL 重定向到新选项卡?

【问题讨论】:

    标签: django


    【解决方案1】:

    我假设您已经熟悉Djangos Form View。在基于类的视图的form_valid(self, form) 方法中,只需将return super().form_valid(form) 替换为redirect(reverse('YOUR_TARGET_VIEW'))。如果您的视图中有其他依赖于form_valid 的mixin,您也可以在返回重定向响应之前调用super().form_valid(form),但无需进一步返回其返回的数据。

    关于显示错误信息,您可以参考the django message framework

    编辑:执行此操作的更简洁的方法可能是在处理过程中覆盖 success_url,但这可能不适用于所有用例,因为您需要在每个请求路径中提供有用的默认值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-01-12
      • 1970-01-01
      • 2020-05-24
      • 2020-07-14
      • 2014-10-04
      • 2016-03-15
      • 2020-10-31
      相关资源
      最近更新 更多