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实现sublime3的less编译插件示例
Apr 27 Python
详细解析Python中__init__()方法的高级应用
May 11 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python中xml和json格式相互转换操作示例
Dec 05 Python
python使用wxpy轻松实现微信防撤回的方法
Feb 21 Python
tensor和numpy的互相转换的实现示例
Aug 02 Python
Python简易版停车管理系统
Aug 12 Python
详解Python文件修改的两种方式
Aug 22 Python
浅谈Pycharm最有必要改的几个默认设置项
Feb 14 Python
python实现定时发送邮件到指定邮箱
Dec 23 Python
jupyter notebook更换皮肤主题的实现
Jan 07 Python
python中常用的数据结构介绍
Jan 12 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
PHP入门速成教程
2007/03/19 PHP
Ajax+PHP实现的删除数据功能示例
2019/02/12 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
jquery 得到当前页面高度和宽度的两个函数
2010/02/21 Javascript
JQuery中的ready函数冲突的解决方法
2010/05/17 Javascript
fancybox1.3.1 基于Jquery的插件在IE中图片显示问题
2010/10/01 Javascript
Extjs4 Treegrid 使用心得分享(经验篇)
2013/07/01 Javascript
文本框文本自动补全效果示例分享
2014/01/19 Javascript
JS实现点击登录弹出窗口同时背景色渐变动画效果
2016/03/25 Javascript
canvas绘制万花筒效果(代码分享)
2017/01/20 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
vuejs+element-ui+laravel5.4上传文件的示例代码
2017/08/12 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
2017/09/20 Javascript
nodejs async异步常用函数总结(推荐)
2017/11/17 NodeJs
Typescript 中的 interface 和 type 到底有什么区别详解
2019/06/18 Javascript
[01:19]2014DOTA2国际邀请赛 采访TITAN战队ohaiyo 能赢DK很幸运
2014/07/12 DOTA
[02:09]2018DOTA2亚洲邀请赛TNC赛前采访
2018/04/04 DOTA
[41:56]Spirit vs Liquid Supermajor小组赛A组 BO3 第一场 6.2
2018/06/03 DOTA
python中使用enumerate函数遍历元素实例
2014/06/16 Python
深度定制Python的Flask框架开发环境的一些技巧总结
2016/07/12 Python
Python中的日期时间处理详解
2016/11/17 Python
python快速建立超简单的web服务器的实现方法
2018/02/17 Python
Python实现个人微信号自动监控告警的示例
2019/07/03 Python
基于python实现计算两组数据P值
2020/07/10 Python
咖啡为什么会有酸味?你喝到的咖啡為什麼是酸的?
2021/03/17 冲泡冲煮
仿酷狗html5手机音乐播放器主要部分代码
2013/05/15 HTML / CSS
手摸手教你用canvas实现给图片添加平铺水印的实现
2019/08/20 HTML / CSS
C语言笔试集
2012/07/24 面试题
人力资源专员自我评价怎么写
2013/09/19 职场文书
绝对经典成功的大学生推荐信
2013/11/08 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
教师网络培训心得体会
2016/01/09 职场文书
SQL 窗口函数实现高效分页查询的案例分析
2021/05/21 SQL Server
使用python求解迷宫问题的三种实现方法
2022/03/17 Python
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android