我怎样才能得到形式的路径,在它产生之前,Django
How can I get the path of form, before it produced in view, Django
我有这样的问题:
我有表格,显示在网站的每一页上。因此,该操作针对指定的(单独的)视图:
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
- 它 returns 我是一个处理此表单的 url。但是我需要一个页面的 url...
你明白了吗?我应该怎么办?
非常感谢!
您需要在表单中添加一个额外的字段,让您的视图知道要重定向到哪里。最简单的方法是在表单中添加隐藏输入:
<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)
我有这样的问题: 我有表格,显示在网站的每一页上。因此,该操作针对指定的(单独的)视图:
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
- 它 returns 我是一个处理此表单的 url。但是我需要一个页面的 url...
你明白了吗?我应该怎么办?
非常感谢!
您需要在表单中添加一个额外的字段,让您的视图知道要重定向到哪里。最简单的方法是在表单中添加隐藏输入:
<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)