【发布时间】:2019-03-01 23:42:22
【问题描述】:
这是一个简单的问题。
我想使用 Queryset 类一次处理 2 个过滤器。让我解释。
from django.db.models import Q
import datetime
from .models import Asset
query_set = Asset.objects.filter(category__name="car")
date_query = {'eav__date__gte': datetime.datetime(2018, 9, 2, 0, 0), 'eav__date__lte': datetime.datetime(2018, 9, 14, 0, 0)}
number_query = {'eav__price__gte': '60', 'eav__price__lte': '600'}
total_query = {'eav__date__gte': datetime.datetime(2018, 9, 2, 0, 0), 'eav__date__lte': datetime.datetime(2018, 9, 14, 0, 0),'eav__price__gte': '60', 'eav__price__lte': '600'}
query_set = query_set.filter(Q(**number_query))
query_set = query_set.filter(Q(**date_query))
在这种情况下,query_set 不为空!
query_set = query_set.filter(Q(**total_query))
在这种情况下,query_set 为空!
有人可以解释一下两个查询之间的区别吗?提前致谢。
【问题讨论】:
-
你能打印出这两个查询吗(
print(str(query_set.query))?我的印象是原来的query_set可能已经不一样了。
标签: django django-models django-queryset django-orm