django

Django-17 F对象和Q对象

2021-07-16  本文已影响0人  JuliusL

F对象

from django.db.models import F
F('列名')
from django.db.models import F
from bookstore.models import Book
books = Book.objects.filter(market_price__gt=F('price'))
# SELECT * FROM bookstore_book WHERE book_store.market_price > bookstore.price

Q对象

当前获取查询结果集使用复杂的逻辑或|、逻辑非~等操作时可以借助Q对象进行操作
如:想找出定价低于20元 或 清华大学出版社的全部书,可以写成

from django.db.models import Q
Book.objects.filter(Q(price__lt=20)|Q(pub="清华大学出版社"))

Q(条件1)|Q(条件2) 条件1成立或条件2成立
Q(条件1)&Q(条件2) 条件1和条件2同时成立
Q(条件1)&~Q(条件2) 条件1成立且条件2不成立

上一篇下一篇

猜你喜欢

热点阅读