【问题标题】:Remember which view you came from after you do a POST on current view在对当前视图执行 POST 后,记住您来自哪个视图
【发布时间】:2015-07-12 01:23:09
【问题描述】:
我知道使用 GET 参数可以知道您来自哪个视图。参考:Django Redirect to previous view。但是,如果您对当前视图执行 POST,则此信息会被清除。
出于我的目的,我有一个 django 应用程序,您可以在其中从多个目的地访问具有表单和后退按钮的相同视图。一切正常,直到您提交表单,然后在没有任何关于您一开始来自哪里的信息的情况下被重定向到同一个视图。
如果需要任何示例来理解我的问题,请发表评论。
【问题讨论】:
标签:
django
forms
redirect
web
get
【解决方案1】:
即使您使用POST 方法,您仍然可以使用GET 参数:
<form action="{% if from %}?next={{ from }}{% endif %}" method="POST" />
然后在视图中:
def some_view(request):
if request.method == 'POST':
form = SomeForm(request.POST)
...
next_url = request.GET.get('next')
...
此外,您可以省略<form> 标记的action 属性,这样您就不必将from 上下文变量传递给模板:
<form method="POST" />
在这种情况下,GET 参数将在请求之间自动“保存”。