django: consulta agregada baseada em intervalo de tempo

Eu tenho os seguintes modelos, Art e 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()

Certas ações do usuário resultam em uma entrada do ArtScore, por exemplo, sempre que você clicar em "Eu gosto dessa arte", salvo uma certa quantidade de ArtScore para essa Arte.

Agora estou tentando mostrar uma página para "mais popular esta semana", então preciso de uma consulta agregando apenas os valores de ArtScore para esse período.

Eu construí a consulta abaixo, mas é falho ...

popular = Art.objects.filter(
    artscore__date__range=(weekago, today)
).annotate(
    score=Sum('artscore__amount')
).order_by('-score')

... porque só exclui Art que não tenha um registro de ArtScore no período, masnão exclui os registros do ArtScore fora do intervalo de datas.

Quaisquer indicações de como conseguir isso seria apreciado!

Obrigado,

Martin

questionAnswers(1)

yourAnswerToTheQuestion