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 数据加密代码
Dec 24 Python
使用70行Python代码实现一个递归下降解析器的教程
Apr 17 Python
python实现一次创建多级目录的方法
May 15 Python
python 随机数使用方法,推导以及字符串,双色球小程序实例
Sep 12 Python
Python及PyCharm下载与安装教程
Nov 18 Python
火车票抢票python代码公开揭秘!
Mar 08 Python
Python实现的读写json文件功能示例
Jun 05 Python
python 调用有道api接口的方法
Jan 03 Python
Python中的支持向量机SVM的使用(附实例代码)
Jun 26 Python
Python学习笔记之错误和异常及访问错误消息详解
Aug 08 Python
Python简易计算器制作方法代码详解
Oct 31 Python
使用PyTorch将文件夹下的图片分为训练集和验证集实例
Jan 08 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获取MSN好友列表类的实现代码
2013/06/23 PHP
thinkphp视图模型查询提示ERR: 1146:Table 'db.pr_order_view' doesn't exist的解决方法
2014/10/30 PHP
php中header设置常见文件类型的content-type
2015/06/23 PHP
详解PHP归并排序的实现
2016/10/18 PHP
PHP中使用CURL发送get/post请求上传图片批处理功能
2018/10/15 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
jQuery UI插件实现百度提词器效果
2016/11/21 Javascript
JSON键值对序列化和反序列化解析
2017/01/24 Javascript
BootStrap fileinput.js文件上传组件实例代码
2017/02/20 Javascript
微信小程序 循环及嵌套循环的使用总结
2017/09/26 Javascript
js 判断一个数字是不是2的n次方幂的实例
2017/11/26 Javascript
Vue验证码60秒倒计时功能简单实例代码
2018/06/22 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
js实现弹幕飞机效果
2020/08/27 Javascript
Python3.x和Python2.x的区别介绍
2013/02/12 Python
Python中if __name__ == '__main__'作用解析
2015/06/29 Python
利用Python抓取行政区划码的方法
2016/11/28 Python
在keras中获取某一层上的feature map实例
2020/01/24 Python
使用 Python 遍历目录树的方法
2020/02/29 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
受外贸欢迎的美国主机:BlueHost
2017/05/16 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
酒店总经理欢迎词
2014/01/08 职场文书
国贸专业的职业规划书
2014/03/15 职场文书
“四风”问题的主要表现和危害思想汇报
2014/09/19 职场文书
学校师德师风自我剖析材料
2014/09/29 职场文书
委托证明范本
2014/11/25 职场文书
超级礼物观后感
2015/06/15 职场文书
同意报考证明
2015/06/17 职场文书
2016年清明节寄语
2015/12/04 职场文书
2019财务转正述职报告
2019/06/27 职场文书
HR必备:销售经理聘用合同范本
2019/08/21 职场文书
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
Python基本的内置数据类型及使用方法
2022/04/13 Python