Сумма вычисляемого столбца в Django QuerySet - PullRequest
2 голосов
/ 11 марта 2010

Учитывая следующую Contribution модель:

class Contribution(models.Model):
    start_time = models.DateTimeField()
    end_time = models.DateTimeField(null=True)

возможно ли с помощью API базы данных Django воспроизвести следующий оператор SQL?

SELECT SUM(end_time - start_time) AS total_duration FROM contribution;

Я понялтак много:

Contribution.objects.aggregate(total_duration=models.Sum( ??? ))

но я не уверен, как представить часть end_time - start_time.Спасибо!

1 Ответ

1 голос
/ 11 марта 2010

В данный момент это невозможно, есть билет для объектов F () внутри агрегации, но ничего многообещающего.

Единственный способ, которым я вижу, это обойти по сумме в python:

sum([x[1]-x[0] for x in Contribution.objects.values_list('start_time', 'end_time')])
...