我怎样才能得到形式的路径,在它产生之前,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)