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 应用
- 引用格式
from django.forms import ModelForm,Form
from django.forms import widgets
from django.forms import fields 创建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}}.属性用法.
form = UserTypeModeForm(instance=obj) ###instance是初始化数据,用于html里初始化页面.
form = UserTypeModeForm(data=request.POST) ###data是用户输入页面内容集合.
form.is_valid(): ##表示数据获取成功.后续可以拿数据操作,否则没有结果.
form.save(): ##数据直接创建到保存到相应数据库里.