У меня есть следующие модели, искусство и ArtScore:Джанго: диапазон времени на основе агрегатных запросы
class Art(models.Model):
title = models.CharField()
class ArtScore(models.Model):
art = models.ForeignKey(Art)
date = models.DateField(auto_now_add = True)
amount = models.IntegerField()
Определенные действия пользователя результаты в записи ArtScore, например, всякий раз, когда вы нажимаете «Мне нравится это искусство», я экономлю определенное количество ArtScore для этого Искусства.
Теперь я пытаюсь показать страницу для «самой популярной на этой неделе», поэтому мне нужен запрос, суммирующий только суммы ArtScore для этого временного диапазона.
Я построил ниже запрос, но это недостатки ...
popular = Art.objects.filter(
artscore__date__range=(weekago, today)
).annotate(
score=Sum('artscore__amount')
).order_by('-score')
... потому что он исключает только искусство, которое не имеет запись ArtScore в диапазоне дат, но не исключает ArtScore за пределами диапазона дат.
Любые указатели, как это сделать, будут оценены!
Спасибо,
Martin
Вы правы, это работает, получается ...! благодаря! – Hoff