我在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}}的任何反馈都是受欢迎的。