残りのオブジェクトが複数の制約(OR文)の少なくとも1つを満たすようにDjangoでQuerySetを取得する方法はありますか?以下のようなDjango QuerySet OR文
何か:
remaining = Fruits.objects.all()
fruit_type = ['apple', 'orange'] # input from user
for fruit in fruit_type:
remaining = remaining.filter(FruitType__icontains=fruit)
ただし、上記は 'オレンジ色の' AND 'リンゴ'(というよりもオレンジやリンゴ)の両方を含むFruitTypesを返します。あなたは
from django.db.models import Q
for fruit in fruit_type:
query |= Q(FruitType__icontains=fruit)
# Query the model
remaining = remaining.filter(query)
複雑なクエリセットを実行するためにQオブジェクトを使用することができ
チェックを行うことができ、この質問http://stackoverflow.com/questions/4824759/django-query-using-contains-each-value-in-a-list – neverwalkaloner
ます。https:// docs.djangoproject.com/en/1.10/topics/db/queries/#complex-lookups-with-q-objectsこのリンクをたどる –