Django Model中字段(field)的各种选项说明


Posted in Python onMay 19, 2020

字段与选项

CharField() 字符字段

max_length = xxx or None # 必选项

blank = True 和 default = '' # 如果不是必填项,可以设置

unique = True # 如果想要使其唯一,比如用于username,可以设置

choices = xxx_CHOICES # 如果有choice选项,可以设置

TextField() 文本字段

max_length = xxx

blank = True 和 default = '' # 如果不是必填项,可以设置

DateField() and DateTimeField() 日期与时间字段

default date # 一般建议设置默认日期

DateField:default = date.today # 需要导入包 from datetime import date

DateTimeField:default = timezone.now # 需要导入包 from django.utils import timezone

auto_now = True # 对于上一次修改日期(last_modifiel date),可以设置

EmailField() 邮件字段

unique = True # 一般Email用于用户名应该是唯一的,建议设置

IntegerField(),SlugField(),URLField(),BoolField()

blank = True 和 default = '' # 如果不是必填项,可以设置

default = True or False # 对于BoolField一般建议设置

FileField() 文件字段

upload_to ="/some folder/ " # 文件指向文件,必填项

max_length = xxx

ImageField(upload_to = None,**options) 图片字段

upload_to = "/some folder/" # 图片指向文件,必填项

height_field = None

width_field = None

max_length = xxx

ForeighKey(to,on_delete,**options) 一对多关系

to # 必须指向其他模型

on_delete = models.CASCADE or models.SET_NULL # on_delete指定删除选项

"default = xxx" or "null = True"

"limit_choices_to = " # 如果有必要,可以设置

related_name = xxx # 便于反向查询

举例:

xxx = models.ForeignKey(xxx,
   on_delete = models.CASCADE,
   limit_choices_to = {'is_staff':True},
   related_name = xxx)

ManyToManyField(to,**options) 多对多关系

to # 必须只想其他模型

symmetrical = False # 如果多对多关系不是对称的,可以设置

through = 'intermediary model # 如果需要建立中间模型来搜集更多信息,可以设置

related_name = xxx # 便于反向查询

补充知识:django 使用annotate定义字段后排序翻页重复的问题

objs = A.objects.annotate(number=Sum('b__number')).order_by('-number')

此时对objs翻页,在number数据相同的地方翻页数据可能会混乱(重复)

解决办法,加上id排序

objs = A.objects.annotate(number=Sum('b__number')).order_by('-number', 'id')

以上这篇Django Model中字段(field)的各种选项说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python的Flask框架中web表单的教程
Apr 20 Python
python使用socket向客户端发送数据的方法
Apr 29 Python
python编程使用协程并发的优缺点
Sep 20 Python
python3实现爬取淘宝美食代码分享
Sep 23 Python
python3.4 将16进制转成字符串的实例
Jun 12 Python
Pycharm如何打断点的方法步骤
Jun 13 Python
Python中的 is 和 == 以及字符串驻留机制详解
Jun 28 Python
利用python-pypcap抓取带VLAN标签的数据包方法
Jul 23 Python
Python 解析xml文件的示例
Sep 29 Python
详解python的内存分配机制
May 10 Python
python 利用PyAutoGUI快速构建自动化操作脚本
May 31 Python
Python+Tkinter制作专属图形化界面
Apr 01 Python
Django模板获取field的verbose_name实例
May 19 #Python
Django多层嵌套ManyToMany字段ORM操作详解
May 19 #Python
django ORM之values和annotate使用详解
May 19 #Python
基于python实现地址和经纬度转换
May 19 #Python
Python Django form 组件动态从数据库取choices数据实例
May 19 #Python
Django自关联实现多级联动查询实例
May 19 #Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
May 19 #Python
You might like
PHP中用接口、抽象类、普通基类实现“面向接口编程”与“耦合方法”简述
2011/03/23 PHP
PHP删除HTMl标签的三种解决方法
2013/06/30 PHP
自定义ExtJS控件之下拉树和下拉表格附源码
2013/10/15 Javascript
Jquery 在页面加载后执行的几种方式
2014/03/14 Javascript
jquery attr方法获取input的checked属性问题
2014/05/26 Javascript
JSON.parse()和JSON.stringify()使用介绍
2014/06/20 Javascript
JavaScript实现按Ctrl键打开新页面
2014/09/04 Javascript
RGB和YUV 多媒体编程基础详细介绍
2016/11/04 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
使用npm安装最新版本nodejs
2018/01/18 NodeJs
JS判断数组四种实现方法详解
2020/06/29 Javascript
[00:31]DOTA2上海特级锦标赛 Fnatic战队宣传片
2016/03/04 DOTA
Python异常处理总结
2014/08/15 Python
Python中工作日类库Busines Holiday的介绍与使用
2017/07/06 Python
Python基于OpenCV库Adaboost实现人脸识别功能详解
2018/08/25 Python
Python 异常处理Ⅳ过程图解
2019/10/18 Python
Python中filter与lambda的结合使用详解
2019/12/24 Python
pytorch dataloader 取batch_size时候出现bug的解决方式
2020/02/20 Python
Python使用graphviz画流程图过程解析
2020/03/31 Python
Python读取pdf表格写入excel的方法
2021/01/22 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
html5教程制作简单画板代码分享
2013/12/04 HTML / CSS
美国诺德斯特龙百货官网:Nordstrom
2016/08/23 全球购物
销售所有的狗狗产品:Dog.com
2016/10/13 全球购物
Spartoo荷兰:鞋子、包包和服装
2018/07/12 全球购物
12岁生日感言
2014/01/21 职场文书
高中毕业自我评价
2014/02/08 职场文书
大学生军训感想
2014/02/16 职场文书
法人委托书范本
2014/04/04 职场文书
维修工先进事迹
2014/05/29 职场文书
青年岗位能手事迹材料
2014/12/23 职场文书
大明湖导游词
2015/02/03 职场文书
开票证明
2015/06/23 职场文书
送给教师们,到底该如何写好教学反思?
2019/07/02 职场文书
2019运动会广播加油稿汇总
2019/08/21 职场文书
CSS实现漂亮的时钟动画效果的实例代码
2021/03/30 HTML / CSS