DjangoのORMのクエリ操作

一般的なフィルタ操作

:以上、より大きい

>より大きい__gt
__gte以上> =

Student.objects.filter(age__gt = 10)//クエリより古い10歳の学生
Student.objects.filter(age__gte = 10)//クエリよりも古いまたは10歳の学生に等しい

:特別な注意ここで下線二重下線で、また、二重下線の導入以下の通りです。
:以下、未満

<未満__lt
より__lte以下<=

10歳未満のStudent.objects.filter(age__lt = 10)//クエリの学生
Student.objects.filter(age__lte = 10)//クエリ歳未満または10歳の学生と同じ
ように:

__exact「AAA」のような正確に等しくは
正確に等しいiLikeの「AAA」の場合を無視__iexact
__containsが「%% AAA」のような含む
、__icontainsにiLikeの「%AAA%」が、SQLiteのために、それに含まれる効果と同等の場合を無視しますicontains。
中:

__in

クエリ高齢学生の範囲
Student.objects.filter(age__in = [10、20、30])は、
/ nullであるNULLでありません。

__isnull宣告空

Student.objects.filter(name__isnull = TRUE)//ユーザー名を照会し、ブランク学生さ
Student.objects.filter(偽= name__isnull)//ユーザー名が学生の空でない照会
/に含まれていないに等しいではありません。

Student.objects.filter()。Excute(年齢= 10)// 10歳を照会の学生ではありません
(Student.objects.filter)。Excute(age__in = [10、20])// クエリが[10、20歳ではありません]学生
の他の一般的なファジークエリ:

...そもそも__startswith
...場合無視することを始め__istartswith
に...エンド__endswith
ケース無視し、...エンディング__iendswithを
内...範囲__rangeを
__year年日付フィールド
__month月日付フィールド
の日__day日付フィールド
マルチテーブル、クエリに参加します:

 クラス(models.Model):
    名前= models.CharField(U '名称')
 、クラスB(models.Model):
    AA = models.ForeignKey(A)

B.objects.filter(aa__name__containsの= 'searchtitle')クエリ#1 B表AAテーブルBに対応するテーブル内の外部キー列は、オブジェクトsearchtitleの名前を含んでいます。

クエリAPI

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
< 1 all ():                  查询所有结果
  
< 2 filter ( * * kwargs):       它包含了与所给筛选条件相匹配的对象
  
< 3 > get( * * kwargs):          返回与所给筛选条件相匹配的对象,返回结果有且只有一个,
                             如果符合筛选条件的对象超过一个或者没有都会抛出错误。
  
< 4 > exclude( * * kwargs):      它包含了与所给筛选条件不匹配的对象
 
< 5 > order_by( * field):       对查询结果排序
  
< 6 > reverse():              对查询结果反向排序
  
< 8 > count():                返回数据库中匹配查询(QuerySet)的对象数量。
  
< 9 > first():                返回第一条记录
  
< 10 > last():                返回最后一条记录
  
< 11 > exists():              如果QuerySet包含数据,就返回 True ,否则返回 False
 
< 12 > values( * field):        返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列
                             model的实例化对象,而是一个可迭代的字典序列
< 13 > values_list( * field):   它与values()非常相似,它返回的是一个元组序列,values返回的是一个字典序列
 
< 14 > distinct():            从返回结果中剔除重复纪录

おすすめ

転載: www.cnblogs.com/ls1997/p/10955402.html