我有这样的问题: 我有表格,显示在网站的每个页面上。因此,该操作适用于指定(单独)视图:
def subscribe(request):
if request.method == "POST":
form = SubscriptionForm(data=request.POST)
if form.is_valid():
form.save()
return redirect() # there is a problem
else:
raise Http404
成功处理表单后,我想将用户重定向到发送表单的页面。
但是,如果我使用request.path
- 它会返回一个处理此表单的URL。但是我需要一个页面的网址......
非常感谢!
答案 0 :(得分:1)
您需要在表单中添加其他字段,以便让您的视图知道重定向到的位置。最简单的方法是在表单中添加隐藏的输入:
<form action="/some/url/" method="post">
...
<input type="hidden" name="next" value="{{ request.path }}">
</form>
request.path
的值是用户提交表单之前页面的路径。
在您的视图中,您可以使用参数next
将用户重定向回他们来自的页面。
def subscribe(request):
...
next = request.POST.get('next', '/some/default/url/here/')
return redirect(next)