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中的URLError异常的方法
Apr 30 Python
Python解析json文件相关知识学习
Mar 01 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
举例讲解Python常用模块
Mar 08 Python
Python使用numpy模块实现矩阵和列表的连接操作方法
Jun 26 Python
pygame实现五子棋游戏
Oct 29 Python
利用python对excel中一列的时间数据更改格式操作
Jul 14 Python
python实现自定义日志的具体方法
May 28 Python
Pytorch中的学习率衰减及其用法详解
Jun 05 Python
OpenCV-Python 实现两张图片自动拼接成全景图
Jun 11 Python
pycharm代码删除恢复的方法
Jun 26 Python
Python  序列化反序列化和异常处理的问题小结
Dec 24 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
杏林同学录(二)
2006/10/09 PHP
解析dedecms空间迁移步骤详解
2013/05/15 PHP
php strrpos()与strripos()函数
2013/08/31 PHP
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
基于jquery实现的上传图片及图片大小验证、图片预览效果代码
2011/04/12 Javascript
JavaScript自执行闭包的小例子
2013/06/29 Javascript
JS实现鼠标单击与双击事件共存
2014/03/08 Javascript
jQuery根据name属性进行查找的用法分析
2016/06/23 Javascript
用JavaScript和jQuery实现瀑布流
2017/03/19 Javascript
Vue使用mixins实现压缩图片代码
2018/03/14 Javascript
浅谈vue后台管理系统权限控制思考与实践
2018/12/19 Javascript
npm 语义版本控制详解
2019/09/10 Javascript
修改NPM全局模式的默认安装路径的方法
2020/12/15 Javascript
Taro小程序自定义顶部导航栏功能的实现
2020/12/17 Javascript
python发送邮件的实例代码(支持html、图片、附件)
2013/03/04 Python
pygame游戏之旅 添加游戏界面按键图形
2018/11/20 Python
python字符串查找函数的用法详解
2019/07/08 Python
浅谈Pycharm最有必要改的几个默认设置项
2020/02/14 Python
Python unittest工作原理和使用过程解析
2020/02/24 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Python错误的处理方法
2020/06/23 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
关于h5中的fetch方法解读(小结)
2017/11/15 HTML / CSS
Sahajan美国:阿育吠陀护肤品牌
2021/01/09 全球购物
J2EE面试题
2016/03/14 面试题
大学生表扬信范文
2014/01/09 职场文书
毕业生自荐信格式
2014/03/07 职场文书
安全责任协议书
2014/04/21 职场文书
2014年环卫工作总结
2014/11/22 职场文书
财务出纳岗位职责
2015/03/31 职场文书
工地材料员岗位职责
2015/04/11 职场文书
新生儿未入户证明
2015/06/23 职场文书
2015年城乡环境综合治理工作总结
2015/07/24 职场文书
2016年党员干部公开承诺书
2016/03/24 职场文书
小学记事作文之200字
2019/08/06 职场文书
Elasticsearch6.2服务器升配后的bug(避坑指南)
2022/09/23 Servers