如何向django表单向导提供初始数据?

pay*_*ike 4 python django django-formwizard urlconf

根据表单向导文档,初始数据应该是静态字典.但是有可能动态地提供初始数据.

这是我的情况

 def get_context_data(self, form, **kwargs):
    context = super(debugRegistrationWizard, self).get_context_data(form=form, **kwargs)
    email = InvitationKey.objects.get_key_email(self.kwargs['invitation_key'])
    context.update({'invitation_key': self.kwargs['invitation_key']})
    return context
Run Code Online (Sandbox Code Playgroud)

电子邮件是我想要的步骤0中的初始数据,但我只能在get_context_data方法中获取此电子邮件.我怎样才能做到这一点?

顺便说一句,如果formwizard.as_view的urlconf接受如下参数:

url(r'^registration/(?P<invitation_key>\w+)$', debugRegistrationWizard.as_view(FORMS)),
Run Code Online (Sandbox Code Playgroud)

剂量它意味着我必须将变量传递给我的表单的动作属性,因为否则当我提交表单时,我将得到一个未找到的url错误.

tux*_*fly 6

您可以覆盖该方法 get_form_initial

def get_form_initial(self, step):
    initial = self.initial_dict.get(step, {})
    if step == 42:
        email = InvitationKey.objects.get_key_email(self.kwargs['invitation_key'])
        initial.update({'email': email})
    return initial
Run Code Online (Sandbox Code Playgroud)

参考:https://django-formtools.readthedocs.io/en/latest/wizard.html#formtools.wizard.views.WizardView.get_form_initial