2014-04-15 3 views
0

은 내가 goggling 봤는데하지만 난 이렇게하는 가장 좋은 방법이 무엇인지 확실하지 않다장고 - 멀티 페이지 양식을 작성하는 방법?

1 - (Getting Started), Basic Info 
2 - (Checkout), Payment 
3 - (Profile Details), choose user and password 

, 3 단계와 가입 프로세스를하고 있어요.

URL에 UUID를 생성하여 데이터를 추적해야합니까?

http://some.com/signup/123kslk434435 
http://some.com/signup/checkout/123kslk434435 
http://some.com/signup/create-account/123kslk434435 

아니면 세션을 사용해야합니까?

가장 좋은 방법은 무엇입니까?

최고 감사합니다, 앙드레

+0

처리하는 프로필 작성), 장고 사용자를 생성 한 다음 서명 할 수 있습니다. 그러면 여러 양식에서 사용자를 추적 할 수 있습니다. 주문을 변경하는 데 관심이 있거나 물건이이 순서대로 완료되어야한다는 요구 사항이 있습니까? –

+0

안녕하세요 밥! 워크 플로우는이 순서대로 수행되어야합니다. 주제에 대해 더 많이 읽었으며 쿠키를 사용하거나 쿠키를 URL 트릭과 결합하는 것이 가장 좋은 방법이라고 생각합니다. 내가 틀렸어? –

답변

1

Django Form Wizard가 필요하시면 아마. 이렇게하면 (SessionWizardView을 사용하여) 세션 생성을 처리 한 다음 완성 된 각 양식이있는 워크 플로우가 끝날 때 사용자에게 제시 할 수 있습니다. 그런 다음 완성 된 양식을 처리하고 객체에 저장하는 등 적절하다고 생각됩니다.

등 각 단계에 대한 양식의 각을 만들기 :

from django import forms 

class BasicInfoForm(forms.Form): 
    info_field_1 = forms.CharField(max_length=100) 
    ... 

class CheckoutForm(forms.Form): 
    checkout_field_1 = forms.CharField(max_length=100) 

... 

그런 다음 그들은 모두 완료되면 양식을 처리 할,보기를 만들 수 있습니다. 끝에 리디렉션해야합니다. 다음

from django.http import HttpResponseRedirect 
from django.contrib.formtools.wizard.views import SessionWizardView 

class SignupWizard(SessionWizardView): 
    def done(self, form_list, **kwargs): 
     (process each of your forms, which are contained in form list) 
     return HttpResponseRedirect('/page-to-redirect-to-when-done/') 

그리고 당신의 urlconfig에서 볼 수있는 형태를 연결할

urlpatterns = [ 
    url(r'^contact/$', ContactWizard.as_view([BasicInfoForm, CheckoutForm, ...])) 
] 

템플릿 작성을위한 설명서를 참조하십시오, 당신은 어떻게 할 경우 3 단계 첫 번째 (form_list 등

관련 문제