2013-02-15 81 views
0

我有这样的设置:重定向到使用不同的参数相同的看法

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))) 

所以我得到了同一页的帖子提交。

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

(我删除了原来的名字 - 这太混乱了)

+1

不,你描述的没有按”不会发生。在你的“很多处理”中有一些东西,这意味着'different_id2'不是你认为的那样,而是设置为等于'id2'。 – 2013-02-15 16:51:30

+0

其实它是,因为我打印从反向获得的URL和URL是正确的,响应不是。 – SummerBreeze 2013-02-15 16:53:18

回答

2

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

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""" 
相关问题