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计算程序开始到程序结束的运行时间和程序运行的CPU时间
Nov 28 Python
python实现斐波那契递归函数的方法
Sep 08 Python
Python类定义和类继承详解
May 08 Python
requests和lxml实现爬虫的方法
Jun 11 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
Oct 20 Python
django admin后台添加导出excel功能示例代码
May 15 Python
python flask几分钟实现web服务的例子
Jul 26 Python
使用python动态生成波形曲线的实现
Dec 04 Python
sklearn-SVC实现与类参数详解
Dec 10 Python
Python通过TensorFLow进行线性模型训练原理与实现方法详解
Jan 15 Python
完美解决Pycharm中matplotlib画图中文乱码问题
Jan 11 Python
Python+Matplotlib图像上指定坐标的位置添加文本标签与注释
Apr 11 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 microtime获取浮点的时间戳
2010/02/21 PHP
完美的php分页类
2017/10/24 PHP
laravel5表单唯一验证的实例代码
2019/09/30 PHP
一款由jquery实现的整屏切换特效
2014/09/15 Javascript
浅谈Sticky组件的改进实现
2016/03/22 Javascript
使用JS实现图片展示瀑布流效果(简单实例)
2016/09/06 Javascript
jQuery实现checkbox列表的全选、反选功能
2016/11/24 Javascript
jquery处理checkbox(复选框)是否被选中实例代码
2017/06/12 jQuery
解决百度Echarts图表坐标轴越界的方法
2018/10/17 Javascript
JavaScript实现与使用发布/订阅模式详解
2019/01/19 Javascript
详解vue beforeEach 死循环问题解决方法
2020/02/25 Javascript
微信小程序去除左上角返回键的实现方法
2020/03/06 Javascript
electron 如何将任意资源打包的方法步骤
2020/04/16 Javascript
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
python代码制作configure文件示例
2014/07/28 Python
Python和C/C++交互的几种方法总结
2017/05/11 Python
Python爬虫番外篇之Cookie和Session详解
2017/12/27 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
python3实现点餐系统
2019/01/24 Python
Python函数的参数常见分类与用法实例详解
2019/03/30 Python
详解python中的数据类型和控制流
2019/08/08 Python
基于python traceback实现异常的获取与处理
2019/12/13 Python
基于python实现复制文件并重命名
2020/09/16 Python
Python识别验证码的实现示例
2020/09/30 Python
通过代码简单了解django model序列化作用
2020/11/12 Python
阿尔卡特(中国)的面试题目
2014/08/20 面试题
编写一子程序,将一链表倒序,即使链表表尾变表头,表头变表尾
2016/02/10 面试题
一道SQL面试题
2012/12/31 面试题
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
技校生自我鉴定范文
2013/09/26 职场文书
打造完美自荐信
2014/01/24 职场文书
法律专业求职信
2014/05/24 职场文书
怎样写离婚协议书
2014/09/10 职场文书
党的群众路线教育实践活动个人对照检查材料(教师)
2014/11/04 职场文书
2015年清明节网上祭英烈活动总结
2015/03/26 职场文书
学风建设主题班会
2015/08/17 职场文书