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中enumerate函数用法实例分析
May 20 Python
Python实现ssh批量登录并执行命令
Oct 25 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
Python中import机制详解
Nov 14 Python
Django基于ORM操作数据库的方法详解
Mar 27 Python
django反向解析和正向解析的方式
Jun 05 Python
python中int与str互转方法
Jul 02 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
通过实例解析python描述符原理作用
Jan 22 Python
解决python 执行sql语句时所传参数含有单引号的问题
Jun 06 Python
Python实时监控网站浏览记录实现过程详解
Jul 14 Python
python 基于UDP协议套接字通信的实现
Jan 22 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
网页游戏开发入门教程二(游戏模式+系统)
2009/11/02 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
分享PHP源码批量抓取远程网页图片并保存到本地的实现方法
2015/12/01 PHP
Symfony生成二维码的方法
2016/02/04 PHP
PHP数组中头部和尾部添加元素的方法(array_unshift,array_push)
2017/04/10 PHP
ajax调用返回php接口返回json数据的方法(必看篇)
2017/05/05 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
拖动一个HTML元素
2006/12/22 Javascript
一个可以随意添加多个序列的tag函数
2009/07/21 Javascript
js 操作符实例代码
2009/10/24 Javascript
style、 currentStyle、 runtimeStyle区别分析
2010/08/01 Javascript
Javascript处理DOM元素事件实现代码
2012/05/23 Javascript
js 操作符汇总
2014/11/08 Javascript
Google 地图类型详解及示例代码
2016/08/06 Javascript
AngularJS 执行流程详细介绍
2016/08/18 Javascript
原生js实现查询天气小应用
2016/12/09 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
python获取目录下所有文件的方法
2015/06/01 Python
Python线程创建和终止实例代码
2018/01/20 Python
Python实现的HMacMD5加密算法示例
2018/04/03 Python
Python统计单词出现的次数
2018/04/04 Python
python3+PyQt5泛型委托详解
2018/04/24 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
使用jupyter Nodebook查看函数或方法的参数以及使用情况
2020/04/14 Python
Python实现FTP文件定时自动下载的步骤
2020/12/19 Python
python实现ping命令小程序
2020/12/28 Python
python 窃取摄像头照片的实现示例
2021/01/08 Python
PHP解析URL是哪个函数?怎么用?
2013/05/09 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
中医专业应届生求职信
2013/11/17 职场文书
幼儿园国庆节活动方案
2014/02/01 职场文书
初中考试作弊检讨书
2014/02/01 职场文书
仓管员岗位责任制
2014/02/19 职场文书
高质量“欢迎词”
2019/04/03 职场文书
JavaScript+HTML实现学生信息管理系统
2021/04/20 Javascript
Node.js实现断点续传
2021/06/23 Javascript