MYPYNOTE

导航

 

关于查询操作:

1.exact和iexact

exact相当于=   iexact相当于like(但是这里的like和数据库的不一样,没有给后面条件加上%%所以这里like和=的作用相似)

 

article=Article.objects.filter(id__exact=1)
print(article.query)

这里的query用于查看article翻译成的SQL,但是注意,如果查询的时候用get方法,然后使用query会报错
'Article' object has no attribute 'query'
,需要在使用filter的时候这个query才能正常:只能在queryset可以用

SELECT `article_article`.`id`, `article_article`.`title`, `article_article`.`context`, `article_article`.`category_id`, `article_article`.`author_id` FROM `article_article` WHERE `article_article`.`id` = 1

从上面结果可知,exact翻译成=

若为article=Article.objects.filter(id__iexact=1)则翻译结果为:

SELECT `article_article`.`id`, `article_article`.`title`, `article_article`.`context`, `article_article`.`category_id`, `article_article`.`author_id` FROM `article_article` WHERE `article_article`.`id` LIKE 1

可见iexact翻译成like,但是这里注意like后面的条件没有%所以也相当于精确匹配

 

一般情况下,精确匹配直接用=就可以了,不需要写__exact或者__iexact

 

posted on 2018-08-21 11:13  MYPYNOTE  阅读(268)  评论(0)    收藏  举报