2013-02-15 49 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""" 
相關問題