为四川人民祈祷! www.onefoundation.cn

Django ORM的查询条件

django的orm看起来相当的简单,但是要想用好,就得花上一些时间去仔细阅读reference了

只有应用中才会发现不足

往往做一些简单的应用,select都是等号。但是我们遇到了一个稍微别致的应用,查字典


Dictionary.objects.filter(word = w)

这样明显不行,如果我查询"china"一定找不到,因为是精确的match,所以你要输入"China"才可以找到中国
在这样紧急的情况,我们需要的是立刻查阅reference,原来上面的那一句等同于下面的
Dictionary.objects.filter(word__exact = w)

想要让查询忽略大小写,下面的写法就可以实现
Dictionary.objects.filter(word__iexact = w)

新的想法,当我输入前几个字的时候,可以查找出所有可能的单词
Dictionary.objects.filter(word__istartswith = w)

于是我们可以更加多样的控制SQL语句之中WHERE后面的条件,而不仅仅是等于
* exact
* iexact
* contains
* icontains
* gt
* gte
* lt
* lte
* in
* startswith
* istartswith
* endswith
* iendswith
* range
* year
* month
* day
* isnull
* search
* regex
* iregex
Django ORM为我们提供了这样的工具
tags: django   
by kernel1983
Comments »
Leave a Comment:
code:868