django-Q表达式

想要找到某个表下的价格高于100元,并且评分达到5以上评分的图书

books = Book.objects.filter(price__gte=100,rating__gte=5)
#找到Book表下的price__gte字段大于100,rating__gte并且字段大于5的数据

如果是别的方式,比如说:找到某个表下的价格高于100元或者评分大于5的,那么这个方式就不适用了    

from django.db.models import Q    #需要导入这个模块

# 获取id等于3的图书
books = Book.objects.filter(Q(id=3))


# 获取id等于3,或者名字中包含文字"记"的图书
books = Book.objects.filter(Q(id=3)|Q(name__contains("")))


# 获取价格大于100,并且书名中包含"记"的图书
books = Book.objects.filter(Q(price__gte=100)&Q(name__contains("")))


# 获取书名包含“记”,但是id不等于3的图书
books = Book.objects.filter(Q(name__contains='') & ~Q(id=3))

 

 

posted @ 2019-11-24 21:09  啃料丶  阅读(788)  评论(0编辑  收藏  举报