下面的例子将产生一个异常,因为试图提取两个字段的值,但是查询语句只需要一个字段的值:
6. gt
大于
Entry.objects.filter(id__gt=4)
7. gte
大于或等于
8. lt
小于
9. lte
小于或等于
10. startswith
区分大小写,从开始位置匹配。
Entry.objects.filter(headline__startswith=‘Lennon’)
11. istartswith
不区分大小写,从开始位置匹配。
Entry.objects.filter(headline__istartswith=‘Lennon’)
12. endswith
区分大小写,从结束未知开始匹配。
Entry.objects.filter(headline__endswith=‘Lennon’)
13. iendswith
不区分大小写,从结束未知开始匹配。
Entry.objects.filter(headline__iendswith=‘Lennon’)
14. range
范围测试(包含于之中)。
警告:过滤具有日期的DateTimeField不会包含最后一天,因为边界被解释为“给定日期的0am”。
15. date
进行日期对比。
当USE_TZ为True时,字段将转换为当前时区,然后进行过滤。
16. year
对年份进行匹配。
当USE_TZ为True时,在过滤之前,datetime字段将转换为当前时区。
17. month
对月份进行匹配。取整数1(1月)至12(12月)。
当USE_TZ为True时,在过滤之前,datetime字段将转换为当前时区。
18. day
对具体到某一天的匹配。
当USE_TZ为True时,在过滤之前,datetime字段将转换为当前时区。
19. week
Django1.11中的新功能。根据ISO-8601返回周号(1-52或53),即星期一开始的星期,星期四或之前的第一周。
当USE_TZ为True时,字段将转换为当前时区,然后进行过滤。
20. week_day
进行“星期几”匹配。 取整数值,星期日为1,星期一为2,星期六为7。
当USE_TZ为True时,在过滤之前,datetime字段将转换为当前时区。
21. time
Django1.11中的新功能。
将字段的值转为datetime.time格式并进行对比。
USE_TZ为True时,字段将转换为当前时区,然后进行过滤。
22. hour
对小时进行匹配。 取0和23之间的整数。
当USE_TZ为True时,值将过滤前转换为当前时区。
23. minute
对分钟匹配。取0和59之间的整数。
当USE_TZ为True时,值将被过滤前转换为当前时区。
24. second
对秒数进行匹配。取0和59之间的整数。
当USE_TZ为True时,值将过滤前转换为当前时区。
25. isnull
值为False或True, 相当于SQL语句IS NULL和IS NOT NULL.
Entry.objects.filter(pub_date__isnull=True)
26. search
自1.10版以来已弃用。
27. regex
区分大小写的正则表达式匹配。
Entry.objects.get(title__regex=r’^(An?|The) +')
建议使用原始字符串(例如,r’foo’而不是’foo’)来传递正则表达式语法。
28. iregex
不区分大小写的正则表达式匹配。
Entry.objects.get(title__iregex=r’^(an?|the) +')
聚合函数
Django的django.db.models模块提供以下聚合函数。
- expression
引用模型字段的一个字符串,或者一个query expression。
- output_field
用来表示返回值的model field,一个可选的参数。
3. **extra
关键字参数可以给聚合函数生成的SQL提供额外的信息。
- Avg
class Avg(expression, output_field=FloatField(), **extra)[source]
返回给定表达式的平均值,它必须是数值,除非指定不同的output_field。
- Count
class Count(expression, distinct=False, **extra)[source]
返回与expression相关的对象的个数。
- Max
class Max(expression, output_field=None, **extra)[source]
返回expression的最大值。
- Min
class Min(expression, output_field=None, **extra)[source]
返回expression的最小值。
- StdDev
class StdDev(expression, sample=False, **extra)[source]
返回expression的标准差。
.
- Sum
class Sum(expression, output_field=None, **extra)[source]
计算expression的所有值的和。
- Variance