如何将url参数作为基本数据导入到django的表单向导中?

时间:2017-06-04 09:14:17

标签: django django-formwizard

我的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 初始

但是怎么???

非常感谢!

1 个答案:

答案 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