我已经实现了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
错误
有没有办法破解这个并实现我的目标? 感谢