Django ModelForm
2017-06-04 00:00
459 查看
Django 的ModelForm 可以让你从 Django 的模型创建 表单
2、创建一个 ModelForm 类,并配置 ModelForm 类和Model 对应关系
1、生成空表单
2、表单中显示初始数据
3、request.POST
保存并验证表单
注意:此时 obj,svae 不仅保存当前对象实例,还保存实例对应跨表关系(外键,多对多等)
此时 obj.save 在内部执行3个步骤
使用ModelForm
1、使用之前需要导入对应app中的模型和 Django ModelFormfrom django.forms import ModelForm from app01.models import Userinfo
2、创建一个 ModelForm 类,并配置 ModelForm 类和Model 对应关系
class UserInfoForm(ModelForm): # 新建1个类,继承ModelForm class Meta: model = UserInfo # 对应的 app 中的哪个 Model fields = ['name', 'password', 'email', 'user_type'] # 对应UserInfo 中的哪些字段 fields = '__all__' # 表示需要所有的模型字节
ModelForm 常用class Meta 配置
注意:每个字段后面不要加逗号class Meta: model = models.UserInfo #结尾不用加逗号 fields = '__all__' # fields = ['username','email'] # exclude = ['username'] # 除了 XX字段,其他都使用 labels = { # label 名称 'username': '用户名', 'email': '邮箱', } help_texts = { # 帮助信息 'username': '...' } widgets = { 'username': Fwidgets.Textarea(attrs={'class': 'c1'}) } error_messages = { # 自定义错误 '__all__':{ }, 'email': { 'required': '邮箱不能为空', 'invalid': '邮箱格式错误..', } } field_classes = { #字段类型,可以强制修改成其他类型 # 'email': Ffields.URLField } # localized_fields=('ctime',)
ModelForm 生成HTML 和 数据验证
生成HTML1、生成空表单
mf = UserInfoForm() # 生成空的表单
2、表单中显示初始数据
userobj =models.UseInfo.objects.all() mf = UserInfoForm( instance = userobj ) # instance 对应模型实例
3、request.POST
obj = UserInfoForm(request.POST)
保存并验证表单
obj = UserInfoModelForm(request.POST) if obj.is_valid(): # 验证成功则保存modelsform obj.save()
注意:此时 obj,svae 不仅保存当前对象实例,还保存实例对应跨表关系(外键,多对多等)
此时 obj.save 在内部执行3个步骤
instance = userobj(False) # 生成实例对象 instance.save() # 保存实例对象 obj.save_m2m() # 保存实例对象对应外键关系
相关文章推荐
- Django之ModelForm组件
- Django 基础(二),Model连表、Form自定义错误信息、Ajax操作
- Django之modelform修改数据库
- 基于Django的ModelForm组件(详解)
- django进阶-modelform&admin action
- django中ModelForm多表单组合的解决方案
- django中ModelForm save方法 以及快速生成空表单或包含数据的表单 包含错误信息
- Django-ModelForm
- Python开发【Django】:ModelForm操作
- Django之ModelForm组件
- Django 之 ModelForm 组件
- django Modelform表单自定义控件
- django model form
- 四【用django2.0来开发】后台会员管理(二) ModelForm表单的使用方法以及数据验证
- Python菜鸟之路:Django ModelForm的使用
- 框架----Django之ModelForm组件
- Django之ModelForm处理外键关系数据
- Django-model_form
- django model form 保存方法 django-rest-framework save 修改某一项值 方法
- django表单使用forms.ModelForm