【django入门】 15 ModelForm关联MySQL“多”字段表(增-页面)
2022/2/20 19:34:55
本文主要是介绍【django入门】 15 ModelForm关联MySQL“多”字段表(增-页面),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
简介
Form、ModelForm都是django下forms下的类,
- django.forms.Form
- django.forms.ModelForm
Form能做到:
- 校验用户POST的数据是否满足数据库设计要求
- 不满足要求时,生成错误提示
- 于views.py定义form中多个字段,“自动”被html页面继承
ModelForm 还能做到:
- 基于models.py各字段(包含外键、包含元祖时),“自动”于views.py取到models的多个字段
例如gender_list限定男和女
depart_obj限定特定几个部门
ModelForm编写新增页面
views.py中
- 定义用户的ModelForm类
- ①“class Meta:”
- ②该用户类继承django.forms.ModelForm(可先引入django.forms)
- ③用户类中“model = 具体数据库表”
- ④用户类中“fields = 具体数据库表的具体字段” 或 = “all”
- 将用户类作为变量(“form”)传入request函数,最终传入html
html中
- 循环传入变量(“form”),取名“field”
- field.label 源自 models.py中该字段的verbose_name
- field在每次循环中,等同于具体的form.name、form.age、form.password……
- field有特定值时,例如“男”、“女”,html最终呈现为下拉框选项
- field有特定外键值时,例如“吹牛部”、“趟平部”,但html默认呈现为object
此时需要在models.py,对具体表做特别定义,使该表(作为对象)返回的值默认为具体某个字段
- 由于html中,{{ field }}不能额外定义css样式
那么如何实现应用Bootstrap的class?——在views.py中的用户类中做定义
- 逐个定义Bootstrap的样式
- 批量定义Bootstrap的样式
↑ 阅读django源码,才可发现这个方法:
用户类的super(),即django的ModelForm——的fiels.items()
包含name和field,其中可以在field.widget.attrs定义class
来源:BV1NL41157 武沛齐《2022 B站最详细django3教程(django从入门到实践)》P32-P33
这篇关于【django入门】 15 ModelForm关联MySQL“多”字段表(增-页面)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程