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 合并连接字符串的方法
Mar 09 Python
浅述python中argsort()函数的实例用法
Mar 30 Python
对python中的高效迭代器函数详解
Oct 18 Python
浅谈python中拼接路径os.path.join斜杠的问题
Oct 23 Python
对python的输出和输出格式详解
Dec 08 Python
python pytest进阶之conftest.py详解
Jun 27 Python
Python3安装psycopy2以及遇到问题解决方法
Jul 03 Python
教你如何编写、保存与运行Python程序的方法
Jul 12 Python
为什么说Python可以实现所有的算法
Oct 04 Python
python框架flask表单实现详解
Nov 04 Python
pytorch实现对输入超过三通道的数据进行训练
Jan 15 Python
Python代码覆盖率统计工具coverage.py用法详解
Nov 25 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 header()函数使用说明
2008/07/10 PHP
PHP网站备份程序代码分享
2011/06/10 PHP
PHP 第二节 数据类型之数值型
2012/04/28 PHP
php类中的$this,static,final,const,self这几个关键字使用方法
2015/12/14 PHP
PHP实现文件下载【实例分享】
2017/04/28 PHP
WebGame《逆转裁判》完整版 代码下载(1月24日更新)
2007/01/29 Javascript
js中关于String对象的replace使用详解
2011/05/24 Javascript
extjs tabpanel限制选项卡数量实现思路及代码
2013/04/02 Javascript
Jquery实现列表(隔行换色,全选,鼠标滑过当前行)效果实例
2013/06/09 Javascript
javascript中简单的进制转换代码实例
2013/10/26 Javascript
Js 导出table内容到Excel的简单实例
2013/11/19 Javascript
JS中的log对象获取以及debug的写法介绍
2014/03/03 Javascript
chrome下img加载对height()的影响示例探讨
2014/05/26 Javascript
详解JavaScript中基于原型prototype的继承特性
2016/05/05 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
让编辑器支持word复制黏贴、截屏的js代码
2016/10/17 Javascript
JS 设置Cookie 有效期 检测cookie
2017/06/15 Javascript
Angular+Node生成随机数的方法
2017/06/16 Javascript
js实现图片旋转 js滚动鼠标中间对图片放大缩小
2017/07/05 Javascript
解决VUE框架 导致绑定事件的阻止冒泡失效问题
2018/02/24 Javascript
AngularJS与后端php的数据交互方法
2018/08/13 Javascript
Egg Vue SSR 服务端渲染数据请求与asyncData
2019/11/24 Javascript
微信小程序 SOTER 生物认证DEMO 指纹识别功能
2019/12/13 Javascript
javascript实现计算器功能
2020/03/30 Javascript
在Python中操作时间之tzset()方法的使用教程
2015/05/22 Python
浅谈python中的面向对象和类的基本语法
2016/06/13 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
Python实例方法、类方法、静态方法的区别与作用详解
2019/03/25 Python
初始化了一个没有run()方法的线程类,是否会出错?
2014/03/27 面试题
初级Java程序员面试题
2016/03/03 面试题
机关作风建设心得体会
2014/10/22 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
中秋节晚会开场白
2015/05/29 职场文书
我的法兰西岁月观后感
2015/06/09 职场文书
Nginx 502 Bad Gateway错误原因及解决方案
2021/03/31 Servers
MySQL聚簇索引和非聚簇索引的区别详情
2022/06/14 MySQL