加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

Django FormWizard与动态形式

发布时间:2020-12-16 23:01:17 所属栏目:Python 来源:网络整理
导读:我想实现一个简单的2部分FormWizard. 表单1将动态生成如下内容: class BuyAppleForm(forms.Form): creditcard = forms.ChoiceField(widget = forms.RadioSelect) type = forms.ChoiceField(widget = forms.RadioSelect) def __init__(self,*args,**kwargs):
我想实现一个简单的2部分FormWizard.
表单1将动态生成如下内容:
class BuyAppleForm(forms.Form):
   creditcard = forms.ChoiceField(widget = forms.RadioSelect)
   type = forms.ChoiceField(widget = forms.RadioSelect)
   def __init__(self,*args,**kwargs):
        user = kwargs['user']
        del kwargs['user']

        super(BuyAppleForm,self).__init__(*args,**kwargs)

        credit_cards = get_credit_cards(user)
        self.fields['creditcard'].choices = [(card.id,str(card)) for card in credit_cards]

        apple_types= get_types_packages()
        self.fields['type'].choices = [(type.id,str(type)) for type in apple_types]

这将动态创建一个包含可用选项列表的表单.

我的第二种形式,我实际上不想输入.我只想显示一个确认屏幕,其中包含信用卡信息,苹果信息和金额(总金额,税金,运费).用户单击“确定”后,我希望开始购买苹果.

我能够通过传入kwargs中的request.user对象来实现单一表单方式.但是,使用FormWizard,我无法弄清楚这一点.

我是否接近问题并且FormWizard不是正确的方法吗?如果是,Form __init__方法如何从HTTP请求访问用户对象?

解决方法

我没有使用它,但对于你描述的情况,似乎你可能想尝试 FormPreview而不是FormWizard.从文档中听起来就像你所追求的那样.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读