我有这个设置:
urls.py
url(r"^(?P<id1>\d+)/(?P<id2>\d+)/$", "project.views.view", name="view"),
匹配views.py
def view(request, id1, id2):
if request.method == "POST":
"""a lot of processing"""
return HttpResponseRedirect(reverse('view', args=(id1, different_id2)))
不幸的是,当发生这种情况时,它实际上解决了:
return HttpResponseRedirect(reverse('view', args=(id1, id2)))
所以我得到了与帖子提交时相同的页面。
这是一个问题吗?调用重定向到相同的视图,但使用不同的参数。
(我删除了原始名称 - 这太令人困惑了)
答案 0 :(得分:2)
不,那应该有效。您的代码中可能存在设置ID的错误,或者过早地返回HttpResponseRedirect
。进入调试器,看看发生了什么。
答案 1 :(得分:0)
感谢帮助人员。你是对的。
问题是我有辅助功能(将视图分成小块)并忘记为帮助者添加返回:
def helper(request, id1, id2):
"""a lot of processing"""
return HttpResponseRedirect(reverse('view', args=(id1, different_id2)))
def view(request, id1, id2):
if request.method == "POST":
helper(request, ...)
"""process get"""
应该是
def view(request, id1, id2):
if request.method == "POST":
return helper(request, ...)
"""process get"""