2013-02-15 2 views
0

나는이 설정이 있습니다리디렉션

urls.py를이 실제로 일어나는 불행하게도 때

def view(request, id1, id2): 
    if request.method == "POST": 
     """a lot of processing""" 
     return HttpResponseRedirect(reverse('view', args=(id1, different_id2))) 

을 views.py 일치

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

해결 방법 :

return HttpResponseRedirect(reverse('view', args=(id1, id2))) 

게시물이 제출 된 것과 동일한 페이지가 표시됩니다.

이것이 문제입니까? 동일한보기로 리디렉션하지만 다른 인수로 리디렉션합니다.

은 (내가 원래 이름을 제거 - 너무 복잡 할 것)

+1

없음을해야한다 :

문제는 내가 도우미 함수 (작은 조각으로 분할보기)를 가지고 있었고 도우미에 대한 수익을 추가하는 것을 잊었다 일어난다. 당신의 "많은 처리"에는 뭔가가 있습니다. 즉,'different_id2'는 당신이 생각하는 것이 아니며,'id2'와 어떻게 든 설정됩니다. –

+0

실제로는 역순으로 입력 한 URL을 인쇄하고 있으므로 URL이 정확하므로 응답이 아닙니다. – SummerBreeze

답변

2

아니, 그건 작동합니다. 코드가 이드를 설정하거나 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"""