Использование .aggregate () для значения, введенного с помощью .extra (select = {…}) в запросе Django?

Я пытаюсь подсчитать, сколько раз игрок играл каждую неделю, вот так:

player.game_objects.extra(
    select={'week': 'WEEK(`games_game`.`date`)'}
).aggregate(count=Count('week'))

Но Django жалуется, что

FieldError: Cannot resolve keyword 'week' into field. Choices are: <lists model fields>

Я могу сделать это в необработанном SQL вот так

SELECT WEEK(date) as week, COUNT(WEEK(date)) as count FROM games_game
WHERE player_id = 3
GROUP BY week

Есть ли хороший способ сделать это, не выполняя необработанный SQL в Django?

23
задан Serjik 19 December 2015 в 09:36
поделиться