您不应使用该方法进行筛选,这将导致
N+1
问题:3000英镑
Market
你可以在家里做这件事
大部分
.annotate(â¦)
[Django-doc]
:
from django.db.models import Sum
hours = 12
Market.objects.filter(
**args,
candle__dt__gte=timezone.now()-timedelta(hours=hours),
).annotate(
candle_vol=Sum('candle__vo')
).order_by('-candle_vol')
Candle
那么这些
集市
将过滤掉这些数据。我们也可以通过允许
蜡烛
from django.db.models import Q, Sum
hours = 12
Market.objects.filter(
Q(candle__dt__gte=timezone.now()-timedelta(hours=hours)) |
Q(candle=None),
**args
).annotate(
candle_vol=Sum('candle__vo')
).order_by('-candle_vol')