# django-type创建类 ModelForm类创建 django-type创建类 ModelForm类创建

标签(空格分隔):
---一:type创建对象格式

type创建类格式:type('类名',(继承的类名,),字段名)

例: Myform=type('Myform',(Form,),fields_dict)
继承一个Form类,并且fields_dict,字段名可以根据自己需要,创建相应的格式.

实例
应用:创建一个Form类,并且自己创建字段


Myform=type('Myform',(Form,),fields_dict)
fields_dict['score_%s'%(quest.id)]=fields.ChoiceField(
label=quest.title,
error_messages={'required':'不能为空'},
widget=widgets.RadioSelect, #这里记住不能加括号
choices=[(i,i) for i in range(1,11)]
)


ModelForm 应用##

  1. 引用格式
    from django.forms import ModelForm,Form
    from django.forms import widgets
    from django.forms import fields

  2. 创建ModelForm.

    class QuestionModelForm(ModelForm):
    question_choice=fields.CharField(widget=widgets.Select(choices=(('1', '打分'),('2', '单选'),('3', '建议')))) #这里和Form类的用法是一样的.
    class Meta:
    model = models.Question #这里是引用Question的数据库
    fields = ['title','question_choice'] #格式化[]里面的字段,在html页面上显示的方法是{{questionModelForm.title}}.

  3. 属性用法.

    form = UserTypeModeForm(instance=obj) ###instance是初始化数据,用于html里初始化页面.

    form = UserTypeModeForm(data=request.POST) ###data是用户输入页面内容集合.

    form.is_valid(): ##表示数据获取成功.后续可以拿数据操作,否则没有结果.
    form.save(): ##数据直接创建到保存到相应数据库里.