Django之ModelForm组件
Posted hesujian
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django之ModelForm组件相关的知识,希望对你有一定的参考价值。
modelform介绍
modelform与forms组件类似,forms组件与对应的表模型(没有关系)
modelform相当于在其基础上继续封装,使得modelform与model具有对应的关系
创建modelform
from app01 import models # 导入modelform这个类 from django.forms import ModelForm # 自己创建一个类继承这个类 class BookList(ModelForm): # 创建Meta类,在Meta类中可以定义属性 class Meta: # 对应的表模型 model = models.Book # fields 用于控制展示的字段 __all__代表全部, 如果想展示多个,就放在列表中 fields = ‘__all__‘ # fields = [‘title‘, ‘price‘] # exclude用于控制排除的字段 exclude = [‘title‘] # error_message用于展示报错信息时不同字段对应不同的信息 error_messages = ‘title‘: ‘required‘: ‘标题不能为空‘, ‘invalid‘: ‘格式错误‘ , # ‘price‘.... 每个字段需要添加错误信息都可以在这个地方添加 # 当我们想要给对应的输入框加入属性时,widgets可以帮我们实现 # 首先要从forms中导入widgets,这里因为和下面的关键字名字一样, 所以需要起别名 from django.forms import widgets as wid widgets = ‘title‘: wid.TextInput(attrs=‘class‘:‘form-control‘), ‘price‘: wid.TextInput(attrs=‘class‘:‘form-control‘) # labels 自定义在前端显示的名字,如果我们不指定,就会自动取字段中查找设置的verbose_name的值 # 如果我们没有设置verbose_name,就会使用字段名对应的小写 labels = ‘title‘: ‘标题‘, ‘price‘: ‘价格‘
在url对应的视图函数中实例化这个类传到前端
def index(request): book_obj = BookList() return render(request, ‘xxx.html‘, locals())
在前端中用法基本与forms组件一致
<label for=" foo.auto_id "> 获得输入框对应的id值 foo.label 获得输入框对应的文本名 </label> 对应的输入框 foo <span> foo.errors.0 输入框的报错信息
以上是关于Django之ModelForm组件的主要内容,如果未能解决你的问题,请参考以下文章