如果success_url由模型确定,我们可以自定义通用视图,如下所示。
def get_success_url(self):
return '/object/%s' % (self.object.id)
但是如果success_url与模型无关,例如,我们想在进入表单页面之前返回页面。它可以是详细页面,列表页面或其他任何内容。我可以在表格中存储推荐网址吗?任何想法都表示赞赏。
〜汉森
答案 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']