djangoにおけるFとQ式
F()式
F()オブジェクトを使用すると、モデルフィールドの値を直接参照し、pythonのメモリにインポートするのではなくデータベース操作を実行できます.これにより、一括データ操作を効率的に完了できます.
例を挙げて説明する F()式を使用しない場合、すべての書籍の価格を50元引き上げたい場合は、このように書くことができます. F()式とupdate()法を組み合わせて書籍の価格を修正する . F()式を使用せずにnameフィールドとemaiフィールドの値が同じデータ情報 をクエリする. F()式を使用してnameフィールドとemaiフィールドの値が同じデータ情報 をクエリーする.
Q()式
Q()式は,あるいは|,&,非~などの論理演算を実現できる.
例を挙げて説明する書籍id番号1または本名紅楼夢の図書情報 を検索する書籍名三国演義かつ価格98の図書情報 を検索する查询书名不是三国演义的书籍信息
F()オブジェクトを使用すると、モデルフィールドの値を直接参照し、pythonのメモリにインポートするのではなくデータベース操作を実行できます.これにより、一括データ操作を効率的に完了できます.
例を挙げて説明する
books = Book.objects.all()
for book in books:
book.price += 50
book.save()
from django.db.models import F
books = Book.objects.update(price=F('price')+50)
authors = Author.objects.all()
for author in authors:
if author.name == author.email:
print(author)
Q()式
Q()式は,あるいは|,&,非~などの論理演算を実現できる.
例を挙げて説明する
from django.db.models import F
authors = Author.objects.filter(name=F("email"))
from django.db.models import Q
books = Book.objects.filter(Q(id=1) | Q(name=' '))
from django.db.models import Q
book = Book.objects.filter(Q(name=' ') & Q(price=98))