gpt4 book ai didi

django - 通过 django FormWizard 传递数据

转载 作者:行者123 更新时间:2023-12-03 03:36:55 26 4
gpt4 key购买 nike

我正在尝试构建一个 django 表单向导,以允许人们注册事件。我可以完成表单向导并查看 done 方法中的数据。问题是我还需要将 event_id 传递给 did 。如何得到通过表单向导将 event_id 从 URL 转换为 done?简单的例子?

------- urls.py ---------
named_register_forms2 = (
('basicdata', SeatsForm),
('form2', AnotherForm),
)

urlpatterns = patterns('',
url(r'^register/(?P<event_id>\d+)/$', register_wizard, name='register_step'),
)

------ forms.py -----------
class SeatsForm(forms.ModelForm):

class Meta:
model = MyModel
fields = [ 'last_name', 'first_name', 'address1', 'address2',
'city', 'state', 'zipcode', 'phone_number', 'email']

def __init__(self, *args, **kwargs):
super(SeatsForm, self).__init__(*args, **kwargs)

class RegisterWizard(SessionWizardView):
#storage_name = 'formtools.wizard.storage.session.SessionStorage'
template_name = 'wizard_form.html'

def done(self, form_list, **kwargs):
data = {}
for form in form_list:
data.update(form.cleaned_data)
print data
# I need event_id right here. How to get it?
return render_to_response('done.html', {
'form_data': [form.cleaned_data for form in form_list],
})

最佳答案

我认为您必须将其放入表格中并从那里获取。

如果是模型形式,您可以将 instance_dict 参数传递给向导 View 。 instance_dict param 。但是在这种情况下,您将必须实现一个包装 View ,该 View 将使用这些参数准备向导 View 。像这样的事情:

def wrapper_view(request, id):
#somecode
seats_instance = SeatsModel.objects.get(id=id)
another_instance = AnotherModel.objects.get(id=id)
inst_dict = { '0': seats_instance,
'1': another_instance
}
return RegisterWizard.as_view(named_register_forms2, instance_dict=inst_dict)(request)

class RegisterWizard(SessionWizardView):
#storage_name = 'formtools.wizard.storage.session.SessionStorage'
template_name = 'wizard_form.html'

def done(self, form_list, **kwargs):
data = {}
seatform= form_list[0]
seatinst = form.save()
#save other forms
...
#using seatinst get event id

return render_to_response('done.html', {
'form_data': [form.cleaned_data for form in form_list],
})

关于django - 通过 django FormWizard 传递数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11840544/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com