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'),
)
我想这样做,但我得到这个错误'URL名称需要解决正确的向导URLs'。我尝试给出独特的名字,但仍然没有解决。 – name
你可以试试我编辑的答案吗? –
我试过了,我正在发生同样的错误。我想它必须用'NamedUrlWizardView'来完成,我在登录视图中使用它来定义Singupwizard。 – name