表单验证后,如何将Django表单提交重定向到新标签页?

时间:2020-01-21 15:09:42

标签: django

  1. 我有一个带两个下拉整数字段和一个提交按钮的Django表单。
  2. 用户从这些下拉字段中选择值,然后单击“提交”按钮。
  3. Django模板执行表单“ post”,并将这两个下拉值发送到我的Django视图。
  4. Django视图通过验证这两个下拉字段的值来执行表单验证。
  5. 如果表单无效,它将错误消息发送到Django模板,我可以在表单上方的同一表单页面上显示错误消息。
  6. 如果表单有效,则它将重定向到新的URL。

问题 :仅在表单有效后,如何告诉Django视图将URL重定向到新标签页?

1 个答案:

答案 0 :(得分:0)

我假设您已经熟悉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,但这可能不适用于所有用例,因为您需要在每个请求路径中提供有用的默认值。