QuerySet 字段查询-条件

字段查找

  字段查询是指如何指定SQL WHERE子句的内容. 它们通过查询集的:

  filter()

  get()

  exclude()

  的关键字参数指定.

exact

  精确匹配。如果为比较提供的值为None,它将被解释为SQL NULL:

  示例:

Entry.objects.get(id__exact=14)
Entry.objects.get(id__exact=None)

  SQL等价物:

SELECT ... WHERE id = 14;
SELECT ... WHERE id IS NULL;

iexact

  不区分大小写的精确匹配。

contains

  区分大小写的包含例子。

icontains

  不区分大小写的contains。

in

  在给定的列表。

gt

  大于

Entry.objects.filter(id__gt=4)

gte

大于或等于

lt

小于

lte

小于或等于

startswith

区分大小写,开始位置匹配

istartswith

不区分大小写,开始位置匹配

range

范围测试(包含于之中)。

 

isnull

值为 True 或 False, 相当于 SQL语句IS NULLIS NOT NULL.

Entry.objects.filter(pub_date__isnull=True)

search

一个Boolean类型的全文搜索,以全文搜索的优势。这个很像 contains ,但是由于全文索引的优势,以使它更显著的快。

例:

>>>Entry.objects.filter(headline__search="+Django -jazz Python")

正则表达式

regex

区分大小写的正则表达式匹配。

正则表达式语法是正在使用的数据库后端的语法。

>>>Entry.objects.get(title__regex=r'^(An?|The) +')

建议使用原始字符串(例如,r'foo'而不是'foo')来传递正则表达式语法。

iregex

不区分大小写的正则表达式匹配。

posted @ 2017-05-21 22:46  Vincen_shen  阅读(814)  评论(0)    收藏  举报