QuerySet совокупным значением поля

Я не уверен, в каких терминах вы запрашиваете параметры запроса.

Предполагается, что вы пытаетесь создать какой-то глобальный метод для получения queryParams, если таковой имеется. Вы можете вызывать метод на каждом маршрутизаторе, измененном следующим образом -

this.router.events.subscribe(route => {
    this.activatedRoute.queryParams.subscribe((queryParams) => {
      solutionId = queryParams.solutionId || null;
    });
});
28
задан double-beep 31 January 2019 в 17:27
поделиться

3 ответа

О, конечно, я забываю о новой поддержке агрегирования в Django и annotate функциональность.

, Таким образом, запрос может быть похожим на это:

Contest.objects.get(pk=id).image_set.annotate(score=Sum('vote__value')).order_by( 'score' )
47
ответ дан Alex Koshelev 28 November 2019 в 03:01
поделиться

Можно записать собственный вид в Python очень просто.

def getScore( anObject ):
    return anObject.score()
objects= list(Contest.objects.get( pk = id ).image_set)
objects.sort( key=getScore )

Это работает приятно, потому что мы отсортировали список, который мы собираемся предоставить шаблону.

9
ответ дан S.Lott 28 November 2019 в 03:01
поделиться

Уровень дб order_by не может отсортировать queryset по методу Python модели.

решение состоит в том, чтобы представить score поле Image модель и повторно вычислить его на каждый Vote обновление. Своего рода денормализация. Когда Вы желание можете к виду им.

2
ответ дан Alex Koshelev 28 November 2019 в 03:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: