2012-11-09 2 views
0

폼 마법사 (Django 1.4)가 몇 가지 있습니다. process_step 함수 (중간 단계)의 일부 조건을 확인하고 양식 마법사를 종료하고 홈페이지로 리디렉션하려고합니다. process_step 기능의 끝에서 HttpResponseRedirect(<homepage>)으로 리디렉션하려고하면 무시하고 다음 양식 단계로 진행됩니다.django - 양식 마법사의 중간에 나가서 홈페이지로 리디렉션

+0

> HttpResponseRedirect ()로 리디렉션하려고 할 때 코드가 무엇입니까? 어떻게 이걸 해봐? –

답변

0

실제로 장고가 다음 단계를 렌더링하려면 HttpResponse 또는 return render_to_response 등이 필요합니다. 따라서 제어 흐름은 단순히 HttpResponseRedirect에 도달하지 않을 가능성이 큽니다.

+0

'return HttpResponse (..)'도 작동하지 않습니다. – sefakilic

0

Process_step은 데이터 만 처리하며 반환하는 내용은 렌더링되지 않습니다. 아마도 가장 좋은 방법은 render_next_step을 오버라이드하는 것인데, 다른 몇 가지 함수를 사용하여 처리 할 수도 있습니다.

그래서, render_next_step을 무시하고, 같은 수행

def render_next_step(self, form, **kwargs): 
     data = get_cleaned_data('2') # or whatever your step with the flag is 
     if data.get('your_flag', False): 
      self.storage.reset() 
      return HttpResponseRedirect() 
     return super(Wizard, self).render_next_step(self, form, **kwargs) 

는 또한 현재 또는 다음 단계가 무엇인지 확인하기 위해 청소 데이터를 얻기 전에 조건을 추가 할 수 있습니다.

관련 문제