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入门篇之函数
Oct 20 Python
python 自动化将markdown文件转成html文件的方法
Sep 23 Python
python解析基于xml格式的日志文件
Feb 25 Python
Python实现PS滤镜碎片特效功能示例
Jan 24 Python
解决python写入带有中文的字符到文件错误的问题
Jan 31 Python
详解Python3 基本数据类型
Apr 19 Python
numpy ndarray 取出满足特定条件的某些行实例
Dec 05 Python
CentOS 7如何实现定时执行python脚本
Jun 24 Python
Python3.7安装pyaudio教程解析
Jul 24 Python
Python实现中英文全文搜索的示例
Dec 04 Python
python中类与对象之间的关系详解
Dec 16 Python
基于Python实现流星雨效果的绘制
Mar 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学习之正则表达式
2011/04/17 PHP
基于PHP+Ajax实现表单验证的详解
2013/06/25 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
php使用curl打开https网站的方法
2015/06/17 PHP
PHP中使用array函数新建一个数组
2015/11/19 PHP
php使用Jpgraph创建3D饼形图效果示例
2017/02/15 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
js 鼠标拖动对象 可让任何div实现拖动效果
2009/11/09 Javascript
自制基于jQuery的智能提示插件一枚
2011/02/18 Javascript
javascript中xml操作实现代码
2011/11/21 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
浅谈javascript控制HTML5的全屏操控,浏览器兼容的问题
2016/10/10 Javascript
KnockoutJS 3.X API 第四章之表单textInput、hasFocus、checked绑定
2016/10/11 Javascript
Vuex和前端缓存的整合策略详解
2017/05/09 Javascript
bootstrap响应式导航条模板使用详解(含下拉菜单,弹出框)
2017/11/17 Javascript
13 个npm 快速开发技巧(推荐)
2019/07/04 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
pygame学习笔记(4):声音控制
2015/04/15 Python
Python打印斐波拉契数列实例
2015/07/07 Python
Python做简单的字符串匹配详解
2017/03/21 Python
Python中的groupby分组功能的实例代码
2018/07/11 Python
提升Python程序性能的7个习惯
2019/04/14 Python
pycharm创建scrapy项目教程及遇到的坑解析
2019/08/15 Python
pytorch 模型可视化的例子
2019/08/17 Python
解决python replace函数替换无效问题
2020/01/18 Python
HTML5 常用语法一览(列举不支持的属性)
2010/01/26 HTML / CSS
花园仓库建筑:Garden Buildings Direct
2018/02/16 全球购物
廉政教育心得体会
2014/01/01 职场文书
党员批评与自我批评思想汇报
2014/10/08 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2015年度党风廉政建设工作情况汇报
2015/01/02 职场文书
专职安全员岗位职责
2015/04/11 职场文书
会计工作自我鉴定范文
2019/06/21 职场文书
详解python中[-1]、[:-1]、[::-1]、[n::-1]使用方法
2021/04/25 Python
Java9新特性对HTTP2协议支持与非阻塞HTTP API
2022/03/16 Java/Android
win10键盘驱动怎么修复?Win10键盘驱动修复小技巧
2022/04/06 数码科技