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中给List添加元素的4种方法分享
Nov 28 Python
Python读取ini文件、操作mysql、发送邮件实例
Jan 01 Python
Python实现的基数排序算法原理与用法实例分析
Nov 23 Python
对python中if语句的真假判断实例详解
Feb 18 Python
Python使用修饰器进行异常日志记录操作示例
Mar 19 Python
解决Python正则表达式匹配反斜杠''\''问题
Jul 17 Python
django中SMTP发送邮件配置详解
Jul 19 Python
Form表单及django的form表单的补充
Jul 25 Python
python用requests实现http请求代码实例
Oct 31 Python
Python 图片处理库exifread详解
Feb 25 Python
Python如何利用正则表达式爬取网页信息及图片
Apr 17 Python
python用海龟绘图写贪吃蛇游戏
Jun 18 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 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
解析PHP跳出循环的方法以及continue、break、exit的区别介绍
2013/07/01 PHP
php递归实现无限分类的方法
2015/07/28 PHP
FireFox JavaScript全局Event对象
2009/06/14 Javascript
jquery css 设置table的奇偶行背景色示例
2014/06/03 Javascript
JavaScript参数个数可变的函数举例说明
2014/10/10 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
jQuery遍历DOM元素与节点方法详解
2016/04/14 Javascript
第八篇Bootstrap下拉菜单实例代码
2016/06/21 Javascript
jQuery多级联动下拉插件chained用法示例
2016/08/20 Javascript
javascript ASCII和Hex互转的实现方法
2016/12/27 Javascript
Angular在一个页面中使用两个ng-app的方法(二)
2017/02/20 Javascript
Vue.js实战之通过监听滚动事件实现动态锚点
2017/04/04 Javascript
node thread.sleep实现示例
2018/06/20 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
使用JS监听键盘按下事件(keydown event)
2019/11/07 Javascript
JS实现拖动模糊框特效
2020/08/25 Javascript
python开发的小球完全弹性碰撞游戏代码
2013/10/15 Python
Python内置函数dir详解
2015/04/14 Python
用tensorflow构建线性回归模型的示例代码
2018/03/05 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python实现连续图文识别
2018/12/18 Python
用Python实现最速下降法求极值的方法
2019/07/10 Python
python实现飞行棋游戏
2020/02/05 Python
Python迭代器协议及for循环工作机制详解
2020/07/14 Python
Python 排序最长英文单词链(列表中前一个单词末字母是下一个单词的首字母)
2020/12/14 Python
CSS 3.0 结合video视频实现的创意开幕效果
2020/06/01 HTML / CSS
解析HTML5的存储功能和web SQL的相关操作方法
2016/02/19 HTML / CSS
加拿大户外探险购物网站:SAIL
2020/06/27 全球购物
出国导师推荐信
2014/01/16 职场文书
公司任命书范本
2014/06/04 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
小学数学继续教育研修日志
2015/11/13 职场文书
高中英语教学反思范文
2016/03/02 职场文书
Mysql Innodb存储引擎之索引与算法
2022/02/15 MySQL