null

不设置时默认设置为False。设置为True时,数据库表字段中将存入NULL的记录。 null和blank组合使用,null=True,blank=True,表示该字段可以为空

blank

默认设置为False。设置为True时,表字段许可无任何输入。设置为False 时,表字段为必须输入的字段

choices

备选设置。选择列表选项,如果设置后,该字段的表单必然会是下拉选择的。这个值必须是一个有小括号构成的元组,每个元组前一个字段将存入数据库,后一个字段是显示给用户看的。

default

默认值,设置后在用户无输入时,表字段将以这个选项的内容来存储到数据库字段

可以为python 支持的任意数据对象

editable

如何设置为False,将不会参与到表单的验证。默认是设置为True的

error_messages

这个选项实现校验时的错误提示。是字典结构的内容。

help_text

在表单中形成输入提示内容

primary_key

主键,设置为 True ,该字段将启用为主键。 默认是 False

unique

设置为 True 启用不存在重复值输入的设定,默认为False

unique_for_date

设定日期不存在重复输入,默认为False

verbose_name

字段的文本标签

validators

校验选项,用来配置校验的方法,构成的列表。

max_length

最大输入字符串的长度

min_length

最少输入字符串的长度

AutoField 自动增值的id字段

primary_key=True 为必设置选项

BigAutoField 自动增值的id字段

支持 1 到 9223372036854775807,之间的序号

BigIntegerField 长整形字段

从 -9223372036854775808 到9223372036854775807 的整数

BinaryField 二进制字段

存储内存二进制数据,以 python bytes 对象来访问

BooleanField 布尔值字段

如果许可空的布尔值输入,换用 NullBooleadField

CharField可变长字符串字段

max_length 有最大输入选项为必须设置的选项

DateField日期字段

auto_now:每一次保存对象时,Django 都会自动将该字段的值设置为当前时间。一般用来表示 "最后修改" 时间。要注意使用的是当前日期,而并非默认值,所以

不能通过重写默认值的办法来改变保存时间。

auto_now_add:在第一次创建对象时,Django 自动将该字段的值设置为当前时间,一般用来表示对象创建时间。它使用的同样是当前日期,而非默认值

DateTimeField 有时刻的日期字段

auto_now=False

auto_now_add=False

当auto_now或者auto_now_add设置为True时,字段会有editable=True和blank=True的设定

; 固定精度的十进制数的字段。

它有两个必须的参数

max_digits:数字允许的最大位数

decimal_places:小数的最大位数

例如,要存储的数字最大值是999,而带有两个小数位,你可以使用

models.DecimalField(..., max_digits=5, decimal_places=2)

DurationField 日期时间增量型字段,存储着python timedelta 类数据

EmailField 邮件字段

FileField 文件字段

FilePathField 文件路径字段

FloatField 小数字段

ImageField 图片字段

IntegerField 整数字段

GenericIPAddressField ip地址字段

NullBooleanField 许可null的布尔值字段

PositiveIntegerField

0 到 2147483647,支持所有数据库取值范围的安全整数。

PositiveSmallIntegerField

0 到 32767 支持所有数据库取值范围的安全短整数。

SlugField

SmallIntegerField 短整形字段

TextField 备注型字段,用于存储复杂

TimeField 时间字段

URLField 网址字段

UUIDField

Python UUID 数据对象,一个32位长度的ID字符串

映射字段

ForeignKeyField 一对多字段

映射字段

ManyToManyField 多对多字段

映射字段

OneToOneField 一对一字段

表的查询

查询

Person.objects.all().order_by(“-username”)   按照username字段值 反向排序

Person.objects.all()[:10]切片操作,获取10个人,不支持负索引,切片可以节约内存,不支持负切片

Person.objects.get(name=name)  get获取不到报异常,不可取

get是用来获取一个对象的,如果需要获取满足条件的一些人,就要用到filter

Person.objects.filter(name="abc")# 等于

Person.objects.filter(name__exact="abc")名称严格等于 "abc" 的人

Person.objects.filter(name__iexact="abc")# 名称为abc 但是不区分大小写,可以找到ABC, Abc, aBC,这些都符合条件

***Person.objects.filter(name__contains="abc")# 名称中包含"abc"的人

***Person.objects.filter(name__icontains="abc")#名称中包含"abc",且abc不区分大小写

Person.objects.filter(name__regex="^abc")# 正则表达式查询

Person.objects.filter(name__iregex="^abc")#正则表达式不区分大小写

****

Person.objects.filter(age__gt=15)# age > 15

Person.objects.filter(age__lt=15)# age < 15

Person.objects.filter(age__gte=15)# age >= 15

Person.objects.filter(age__lte=15)# age <= 15

Person.objects.filter(age__ne=15)# age != 15

数据的归档

times = Person.objects.datas('add_time','month',order='desc')  默认正序,desc 倒序

month   表示精准到月

前端页面

{%  for time  in times %}

{{ time.year }} 年 {{time.month}} 月 {{time.day}}日    精准到月,这个time.day  永远是 1

{% endfor %}

filter 过滤有多个条件时

使用django的Q对象表示或者

from django.db.models import Q

Person.objects.filter(Q(name='张三') | Q(age=18))

查询过滤字段

__exact 精确等于                              like 'aaa'

__iexact 精确等于 忽略大小写                ilike 'aaa'

__contains 包含                              like'%aaa%'

__icontains 包含 忽略大小写 ilike '%aaa%',但是对于sqlite来说,contains的作用效果等同于icontains。

__gt 大于

__gte 大于等于

__lt 小于

__lte 小于等于

__in存在于一个list范围内

*****

__startswith以...开头

__istartswith以...开头忽略大小写

__endswith以...结尾

__iendswith以...结尾,忽略大小写

__range 在...范围内

__year日期字段的年份   如   .filter(add_time_year ='2018')  筛选添加时间年份为2018年的数据

__month日期字段的月份

__day日期字段的日

__isnull=True/False

django 模型类的常见字段约束,以及filter 过滤和查询的更多相关文章

  1. Django模型类之models字段类型和参数以及元数据meta

    models之字段类型和参数 示例: # class Test(models.Model): # courses_test # """测试学习用""& ...

  2. Django模型类Meta元数据详解

    转自:https://my.oschina.net/liuyuantao/blog/751337 简介 使用内部的class Meta 定义模型的元数据,例如: from django.db impo ...

  3. 7.Django模型类的定义和管理

    Django的模型类是给ORM层服务的 1.每个数据模型都是django.db.models.Model的子类. 2.它的父类Model包含了所有必要的和数据库交互的方法,并提供了定义数据库字段的语法 ...

  4. django模型类

    模型类 ORM django中内嵌了ORM框架,ORM框架可以将类和数据表进行对应起来,只需要通过类和对象就可以对数据表进行操作. 在Django中主要是设计类:模型类. ORM另外一个作用:根据设计 ...

  5. Django(十)模型:django模型类对数据库的:增/删/改/查、自关联、管理器、元选项(指定表名)

    一.插入.更新和删除 调用一个模型类对象的save方法的时候就可以实现对模型类对应数据表的插入和更新. 调用一个模型类对象的delete方法的时候就可以实现对模型类对应数据表数据的删除. 二.自关联 ...

  6. Django | 模型类变更后生成迁移文件,报错:You are trying to add a non-nullable field 'BookName' to BookInfo without a default....

    报错: You are trying to add a non-nullable field 'BookName' to BookInfo without a default; we can't do ...

  7. django模型中, 外键字段使用to_filed属性 指定到所关联主表的某个字段

    在django项目的开发过程中,在设计模型时一开始将主键设置成了一个自定义的字段,但是在创建搜索索引时却发现必须要存在一个id的字段,并且为主键(不知道是否是项目一开始就这样配置的原因), 但此时表结 ...

  8. django 模型中的计算字段

    models.py class Person(models.Model): family_name= models.CharField(max_length=20, verbose_name='姓') ...

  9. 8.Django模型类例子

    这里定义4个模型 作者:一个作者有姓名 作者详情:包括性别,email,出生日期, 出版商:名称,地址,城市,省,国家,网站 书籍:名称,日期 分析: 作者详情和作者一对一的关系 一本书可以有多个作者 ...

随机推荐

  1. [py]环境变量的获取os.environ.get和设置

    $ export name='maotai' $ python >>> import os >>> os.environ.get('name', "&qu ...

  2. HTML5服务器消息推送(java版)

    前端代码(html5.html): <html> <meta http-equiv="Content-Type" content="text/html; ...

  3. js神秘的电报密码---哈弗曼编码

    哈夫曼编码,根据每个单词在文本中出现的次数频率为权值,频率高的权值大.然后每次取两个频率最小的生成树,最后生成一颗大树.从根节点到该单词的路径,左边为0,右边为1, function HFM(){ v ...

  4. python beautiful soup库的超详细用法

    原文地址https://blog.csdn.net/love666666shen/article/details/77512353 参考文章https://cuiqingcai.com/1319.ht ...

  5. cocos2d-x JS 随机数

    random4 : function (n, m){ var random = Math.floor(Math.random()*(m-n+1)+n); return random;},

  6. vue中使用elementui里的table时不被选中设置

    情景:例如提现列表,转账失败后转账金额直接返回用户余额,所以当前数据不可以再次操作 直接粘贴代码: <el-table-column type="selection" wid ...

  7. maven的下载,安装配置以及build一个java web项目

    一.下载 下载地址:http://maven.apache.org/download.cgi 二.安装 下载完成后,解压,进入到bin目录: 三.环境变量配置 复制bin目录下的文件的路径(如:xxx ...

  8. JavaScript-isFinite()判断是否数字有效

    <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8&quo ...

  9. db2字符串相关函数的使用

    db2字符串相关函数的使用 from :internet    一.字符转换函数 1.ASCII() 返回字符表达式最左端字符的ASCII 码值.在ASCII()函数中,纯数字的字符串可不用‘’括起来 ...

  10. github上删除一个项目或者reposity

    1,点击github的头像,选择如下操作. 2.选择要删除的reposity 3.选择settings 4.复制reposity名字,然后下滑鼠标到底部,选择delete this reposity ...