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

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,

                })

 

posted @ 2018-03-03 19:10  九二零  阅读(92)  评论(0编辑  收藏  举报