如果success_url与Django中的模型本身无关,那该怎么办?

时间:2011-06-29 09:50:40

标签: django

如果success_url由模型确定,我们可以自定义通用视图,如下所示。

def get_success_url(self):
    return '/object/%s' % (self.object.id)

但是如果success_url与模型无关,例如,我们想在进入表单页面之前返回页面。它可以是详细页面,列表页面或其他任何内容。我可以在表格中存储推荐网址吗?任何想法都表示赞赏。

〜汉森

1 个答案:

答案 0 :(得分:1)

我认为成功页面并不总是相同,否则你可以在reverse()中包含类似get_success_url的网址。 对于动态重定向,你可以像你建议的那样在表单的隐藏输入中或在表单发布到的url的查询字符串中添加url(例如/myurl?next=/redirect-url/)。然后,您可以在视图类中执行以下操作:

# url is in the form in a hidden input 'next'
def get_success_url(self):
    return request.POST['next']

# url is in the query string ?next=xxxx
def get_success_url(self):
    return request.GET['next']