在Django中提交模式后重定向到引用页面

时间:2017-02-11 12:44:51

标签: python django twitter-bootstrap

在我的Django应用程序中,我有几页要

  1. 创建民意调查问题/poll/create-question
  2. 修改民意调查问题/poll/edit-question/<question_number>
  3. 每个页面都有一个选项,可以将问题与下拉列表中的类别名称相关联。如果列表中不存在所需的类别,用户还可以动态创建类别。

    单击按钮创建类别,弹出Bootstrap模式,用户可以输入类别名称并提交。此POST请求由单独的view函数(使用urlpattern /poll/create-category)处理。此外,创建类别选项在两个页面中都可用(创建和编辑)

    事情进展顺利。除了我想在模态关闭后重定向到原始页面(即,创建或编辑)。请求对象具有属性调用HTTP_REFERER,其中包含完整的URL http://servername:port/poll/create-question。但我只想要引用页面/poll/create-question的urlpattern。

    Django有没有办法在提交模式时获取并重定向到原始页面?如何在Django中处理这种功能?

1 个答案:

答案 0 :(得分:0)

我会说使用http referrer是不可靠的。您应该使用基于类的视图。制作两个看起来像这样的视图。您可以将所有逻辑放在第一个视图中,并在第二个视图中覆盖成功URL方法。

class CrateCategory (CreateView):
     model = Category

     def get_success_url (self):
         return '/poll/create-question/'

class CreateCategoryToUpdate(CreateCategory):

     def get_success_url (self):
          return '/poll/update-question/'

您应该使用url名称替换带反向()方法的网址。