关于查询操作:
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