Django-如何制作多页表单?
我正在做一个注册过程,包括3个步骤Django-如何制作多页表单?,django,forms,Django,Forms,我正在做一个注册过程,包括3个步骤 1 - (Getting Started), Basic Info 2 - (Checkout), Payment 3 - (Profile Details), choose user and password 我一直在盯着看,但我不确定做这件事的最佳方法是什么 我应该通过在URL上生成UUID来跟踪数据吗 http://some.com/signup/123kslk434435 http://some.com/signup/checkout/123kslk
1 - (Getting Started), Basic Info
2 - (Checkout), Payment
3 - (Profile Details), choose user and password
我一直在盯着看,但我不确定做这件事的最佳方法是什么
我应该通过在URL上生成UUID来跟踪数据吗
http://some.com/signup/123kslk434435
http://some.com/signup/checkout/123kslk434435
http://some.com/signup/create-account/123kslk434435
或者我应该使用会话来执行此操作
最好的方法是什么
致以最良好的祝愿,
安德烈这可能就是你想要的。这将为您创建一个会话(使用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(创建配置文件),然后可以创建一个Django用户,然后让他登录,这意味着您可以跨多个表单跟踪该用户。是否有兴趣更改订单,或者是否有要求按此顺序进行操作?嗨,鲍勃!工作流应按此顺序进行。我已经阅读了更多关于这个主题的文章,我认为最好的方法是使用cookie或者将cookie与URL技巧结合起来。我错了吗?