0

我有这个设置:

网址.py

url(r"^(?P<id1>\d+)/(?P<id2>\d+)/$", "project.views.view", name="view"),

匹配视图.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)))

所以我得到了与提交帖子相同的页面。

这是一个问题吗?调用重定向到相同的视图,但参数不同。

(我删除了原来的名字——这太令人困惑了)

4

2 回答 2

2

不,这应该有效。您的代码中可能存在设置 id 的错误,或者返回HttpResponseRedirect太早。进入调试器,看看发生了什么。

于 2013-02-15T16:52:29.023 回答
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"""
于 2013-02-15T17:03:53.973 回答