django重定向回到发出请求的页面

时间:2016-04-21 14:40:03

标签: python django redirect

我在django中实现了通过重定向返回原始页面查看视图示例

@login_required
def category_edit(request, pk,uri):
    post = get_object_or_404(Category, pk=pk)
    if request.method == "POST":
        form = CategoryForm(request.POST, instance=post)
        if form.is_valid():
            category = form.save(commit=False)
            category.author = request.user
            category.creation_time  = timezone.now()
            category.save()
            return redirect(uri)
            #return redirect('category_details', pk=post.id)
    else:
        form = CategoryForm(instance=post)
    return render(request, 'item/category_edit.html', {'form': form})

所以基本上在像编辑这样的每个操作之后,新的I重定向回到最初进行调用的地方。 (我在删除时停止使用它,因为在删除的情况下页面可能不再存在)

然而,在我的一个问题中,有人提到更好的方法是添加路径到URL而不是发送URL作为参数将其添加到链接中

  <a href="{% url 'category_delete' pk=category.id %}?next={{request.path}}">Delete</a>

从样本和文档中我发现,如果我在“context_processors”中的设置中,这种方法应该自动在django中工作。包括&#39; django.template.context_processors.request&#39;。 (但是我看到的样本可以追溯到以前版本的Django)

但这种做法并不奏效。所以我的问题是吗?在Django 1.8中仍然支持next = {{request.path}},如果是,我错过了哪一步。

对于哪种方法更好的重定向或者?next = {{request.path}}的任何反馈都是受欢迎的。

0 个答案:

没有答案