WizardForm - 第二步的不同形式

时间:2014-10-26 14:33:10

标签: django django-formwizard

我已经实现了Django WizardForm。

这是我初始化它的方式:

 from django.contrib.auth.forms import AuthenticationForm

 url(r'^advertisement-add/$', 
     AdvertisementWizard.as_view([VenueForm,AuthenticationForm]),
     name='advertisement_add'),

在第一步中,用户可以创建广告,输入城市,名称等数据

正如您所看到的,在第二步中,我要求用户登录以处理他的广告。

我想要做的是,如果用户已经过身份验证,那么在第二步中,我想传递名为UserForm的表单,这是一个简单的ModelForm class=User。因为要求用户再次登录是没用的。此外,我的表单向导需要一个表单进行第二步。

我尝试但不起作用的是:

class AdvertisementWizard(SessionWizardView):
    ....

    def get_form(self, step=None, data=None, files=None):
        if step == '1' and self.request.user.is_authenticated():
            user = self.request.user
            return UserForm(initial={
                'first_name': user.first_name,
                'last_name': user.last_name,
            })
        return super(AdvertisementWizard, self).get_form(step, data, files)
    ....

这使我的UserForm在第二步就好了,但是当我点击提交(向导的默认继续按钮)时,AuthenticationForm正在抱怨required_fields错误

有没有办法破解这个并实现我的目标? 感谢

0 个答案:

没有答案