我的urls.py中有以下一行:
url(r'^voter/(?P<voter_id>{id})/$'.format(id = UUID_PATTERN), views.VoterWizard.as_view(views.FORMS), name='voter_index'),
在这里,我有一个voter_id
然后在我的views.py中我有这个课程:
class VoterWizard(SessionWizardView):
#initial_dict = {}
def get_form_initial(self, step):
initial = {}
print(self, step)
return self.initial_dict.get(step, initial)
def get_template_names(self):
return [TEMPLATES[self.steps.current]]
def done(self, form_list, **kwargs):
# do_something_with_the_form_data(form_list)
return HttpResponseRedirect('voting_success.html')
一般来说它有效,但我不知道如何将一些初始数据填充到表单中?
如何从网址中读取 voter_id ,执行查询并将结果传递给表单? 我知道我需要在 get_form_initial 中填充 initial_dict 或初始。
但是怎么???
非常感谢!
答案 0 :(得分:0)
我终于找到了添加以下功能的解决方案:
def get_context_data(self, form, **kwargs):
context = super(VotingWizard, self).get_context_data(form, **kwargs)
context.update({'voting': Voting.objects.get(uuid=self.kwargs['voting_id'])})
return context