Django表单向导独特的URL设计

问题描述:

我有一个5步的注册表单,其中第一步嵌入到主页。因此,step1是主页的一部分,其余步骤将贯穿始终。我喜欢为step2至step5提供唯一的网址。基于此,我试图设计URLS,但我坚持如何离开第一步成为主页URL(mysite.com),其余部分有类似mysite.com/signup/step2等。Django表单向导独特的URL设计

这用于是我的单个工作URL以前

from apps.profile.views.login import SignupWizard, SIGNUP_FORMS 
    from apps.profile.forms import MultiPartSignupFormStep1, MultiPartSignupFormStep2, MultiPartSignupFormStep3, MultiPartSignupFormStep4,MultiPartSignupFormStep5 

urlpatterns = patterns('apps.profile.views.login', 
     url(r'^$', SignupWizard.as_view(SIGNUP_FORMS), name="signup"), 
) 

这是我本次代码

from apps.profile.views.login import SignupWizard, SIGNUP_FORMS 
from apps.profile.forms import MultiPartSignupFormStep1, MultiPartSignupFormStep2, MultiPartSignupFormStep3, MultiPartSignupFormStep4,MultiPartSignupFormStep5 
named_forms = (
    ('step1', MultiPartSignupFormStep1), 
    ('step2', MultiPartSignupFormStep2), 
    ('step3', MultiPartSignupFormStep3), 
    ('step4', MultiPartSignupFormStep4), 
    ('step5', MultiPartSignupFormStep5), 
) 

wizard = SignupWizard.as_view(named_forms) 
    #url_name='step1', done_step_name='finished') 

urlpatterns = patterns('apps.profile.views.login', 
    url(r'^account/signup/(?P<step>.+)/$', wizard), 
    #url(r'^account/signup/$', wizard), 

) 

如何有步骤1首页URL和步骤剩下唯一的网址吗?

也许这会工作:

from apps.profile.views.login import SignupWizard, SIGNUP_FORMS 
from apps.profile.forms import MultiPartSignupFormStep1, MultiPartSignupFormStep2, MultiPartSignupFormStep3, MultiPartSignupFormStep4,MultiPartSignupFormStep5 

step1 = (('step1', MultiPartSignupFormStep1),) 
other_steps = (
    ('step2', MultiPartSignupFormStep2), 
    ('step3', MultiPartSignupFormStep3), 
    ('step4', MultiPartSignupFormStep4), 
    ('step5', MultiPartSignupFormStep5), 
) 

wizard_step1 = SignupWizard.as_view(step1, url_name='wizard_step1') 
wizard_other_steps = SignupWizard.as_view(other_steps, url_name='wizard_other_steps') 

urlpatterns = patterns('apps.profile.views.login', 
    url(r'^$', wizard_step1, name='wizard_step1'), 
    url(r'^account/signup/(?P<step>.+)/$', wizard_other_steps, name='wizard_other_steps'), 
) 
+0

我想这样做,但我得到这个错误'URL名称需要解决正确的向导URLs'。我尝试给出独特的名字,但仍然没有解决。 – name

+0

你可以试试我编辑的答案吗? –

+0

我试过了,我正在发生同样的错误。我想它必须用'NamedUrlWizardView'来完成,我在登录视图中使用它来定义Singupwizard。 – name