基于form组件和modelform组件改造图书管理系统

modelform的补充

      class BookModelForm(forms.ModleForm):
#书籍的名称没有最小长度的校验,那么我们就可以自己自定义在下面这么写,那么它就会替换modelform帮我们自动生成的form属性
title = forms.CharField(max_length=64,min_length=2) class Mate: #配置元信息
model = models.Book #用于指定模型类
fields = '__all__' #指定Book模型类中的所有属性
#fields=['title','price']#如果指定了model模型类中的属性,那么modeform就只会根据给出的属性生成form属性和对应的标签
#exclude=['title','price'] #排除给出指定model模型类中的属性,也就是会生成剩下属性对应的form属性
'''
modelform会自动将这些属性转换为跟上面BookForm类中定义的属性一样
Book类里面的 pub = models.ForeignKey('Publish'),authors = models.ManyToManyField('Author')
会自动翻译成如下
pub = forms.ModelChoiceField(
label='出版社',
queryset=models.Publish.objects.all(),
)
authors = forms.ModelMultipleChoiceField(
label='作者',
queryset=models.Author.objects.all()
)
'''
labels={'title':'书籍名称',...} #指定label标签内容 #labels如果不想写的话可以在model模型类中定义verbose_name='书籍名称'
error_messages={'title':{'required':'不能为空',...},...} #错误提示信息
widgets={'pub_date':forms.TextInput(attrs={'type':'date',...},...),...} #修改插件标签样式
#想在自己定义的forms类在初始化的时候统一加一些样式
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs) for name, field in self.fields.items():
# print(name, field)
field.widget.attrs.update({'class': 'form-control'})

django学习第十五天-modelform的补充的更多相关文章

  1. Django学习笔记(五)—— 表单

    疯狂的暑假学习之  Django学习笔记(五)-- 表单 參考:<The Django Book> 第7章 1. HttpRequest对象的信息 request.path         ...

  2. Django学习之十: staticfile 静态文件

    目录 Django学习之十: staticfile 静态文件 理解阐述 静态文件 Django对静态文件的处理 其它方面 总结 Django学习之十: staticfile 静态文件 理解阐述     ...

  3. python3.4学习笔记(十五) 字符串操作(string替换、删除、截取、复制、连接、比较、查找、包含、大小写转换、分割等)

    python3.4学习笔记(十五) 字符串操作(string替换.删除.截取.复制.连接.比较.查找.包含.大小写转换.分割等) python print 不换行(在后面加上,end=''),prin ...

  4. 201671010140. 2016-2017-2 《Java程序设计》java学习第十五周

    java学习第十五周 Java的GUI界面设计,框架以及主要部件填充,归置,布局管理,在第十一章和第十二章进行了系统的学习,在这两章的知识奠基下,可以简单的构造一个GUI用户界面,在两周的学习后,可以 ...

  5. 学习笔记:CentOS7学习之十五: RAID磁盘阵列的原理与搭建

    目录 学习笔记:CentOS7学习之十五: RAID磁盘阵列的原理与搭建 14.1 RAID概念 14.1.1 RAID几种常见的类型 14.1.2 RAID-0工作原理 14.1.3 RAID-1工 ...

  6. 风炫安全WEB安全学习第二十五节课 利用XSS键盘记录

    风炫安全WEB安全学习第二十五节课 利用XSS键盘记录 XSS键盘记录 同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源.所以xyz.com下的js脚本采用a ...

  7. Django笔记二十五之数据库函数之日期函数

    本文首发于公众号:Hunter后端 原文链接:Django笔记二十五之数据库函数之日期函数 日期函数主要介绍两个大类,Extract() 和 Trunc() Extract() 函数作用是提取日期,比 ...

  8. Django 学习笔记(五)模板标签

    关于Django模板标签官方网址https://docs.djangoproject.com/en/1.11/ref/templates/builtins/ 1.IF标签 Hello World/vi ...

  9. (C/C++学习笔记) 十五. 构造数据类型

    十五. 构造数据类型 ● 构造数据类型概念 Structured data types 构造数据类型 结构体(structure), 联合体/共用体 (union), 枚举类型(enumeration ...

  10. python 学习笔记十五 django基础

    Python的WEB框架有Django.Tornado.Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM.模型绑定.模板引擎.缓存.Session等诸多功能. ...

随机推荐

  1. [转帖]CentOS7上systemctl的使用

    https://www.cnblogs.com/yeyuzhuanjia/p/14676182.html CentOS 7.x开始,CentOS开始使用systemd服务来代替daemon,原来管理系 ...

  2. 【转帖】基于paramiko的二次封装

    https://www.jianshu.com/p/944674f44b24 paramiko 是 Python 中的一个用来连接远程主机的第三方工具,通过使用 paramiko 可以用来代替以 ss ...

  3. [转帖]awk命令 去掉重复行

    https://developer.aliyun.com/article/885946?spm=a2c6h.24874632.expert-profile.263.7c46cfe9h5DxWK lin ...

  4. Linux 查询最近占用内存最多的十个进程的方法

    ps -eo rss,pid,user,command --sort -rss | awk '{ hr=$1/1024 ; printf("%13.2f Mb ",hr) } { ...

  5. element-ui中Select 选择器去除点击时的淡蓝色边框

    <el-select class="my-el-select" v-model="tenantCont" placeholder="请输入机构标 ...

  6. Jupyter Notebook支持Go

    在执行下列命令之前,请确保你已经安装了Go和Jupyter. gophernotes是针对Jupyter和nteract的Go内核,它可以让你在基于浏览器的笔记本或桌面app上交互式地使用Go.下面介 ...

  7. windwos10-11打开任意文件弹出警告

    如下打开exe或者视频.图片都弹出警告 解决方案输入快捷键win+s换出搜索框 输入Internet 选项 进入安全选项点击自定义级别 找到,加载应用程序和不安全文件 勾选启用(不安全) 然后确定-在 ...

  8. P1962 斐波那契数列(矩阵快速幂)

    #include<bits/stdc++.h> #define int long long using namespace std; int n,a[3],m=1e9+7,c[3][3], ...

  9. 加速tortoisegit的show log,减少等待时间

    KMSID: 81703 是否同步到KM: 是 是否原创: 是 标签: 游戏开发 允许复制: 是 允许评论: 是 允许导出PDF: 是 职业库分类KMS: 游戏-游戏程序 查看权限KMS:网易正式员工 ...

  10. 从零开始配置vim(32)——最后再说两句

    很抱歉我决定结束这个系列的内容了.原本我打算介绍markdown.orgmode相关的配置,甚至还打算介绍如何在vim 中使用 emacs 的 org-agenda 来进行日常的任务管理.但是出于一些 ...