3月3日学习内容整理:type创建类的用法

本文介绍如何利用Python的type函数动态创建Django表单类,以实现自定义name属性值并设置初始值,从而简化form组件的开发流程。

type创建类的方法

我们在遇到form组件渲染标签时,其name属性是默认的,我们无法自定义name属性,由此引出用type来创建form组件的类

# TempForm就相当于类名,也是第一个参数
                # 第二个参数时继承form组件的Form类
                # 第三个参数字典就写入相应的字段,和定义form组件的时候写法一样
                # 字典中的key就是字段名也就是被渲染的name属性值,这里是字符串的形式,所以我们就可以自定义name属性值了
                TempForm=type("TempForm",(forms.Form,),{
                  "score_%s"%study_record.pk:forms.ChoiceField(choices=StudyRecord.score_choices),
                  "homework_note_%s"%study_record.pk:forms.CharField(widget=widgets.Textarea(attrs={"rows":3}))

                })

                # 实例化对象,类名()
                # initial参数:就是给每一个渲染出的标签添加默认值
                # 以字典的形式,key就是name属性值,对应的value就是标签的value属性值,这样前端标签就可以显示出数据库中对应的值了
                obj=TempForm(initial={
                    "score_%s"%study_record.pk:study_record.score,
                    "homework_note_%s"%study_record.pk:study_record.homework_note,

                })

 

转载于:https://www.cnblogs.com/wanghl1011/articles/8502691.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值