0
0 комментариев

Есть классы: Соревнование, Гимнаст.
Класс Гимнаст имеет ForeignKey для класса Соревнование.
Так же в классе Гимнаст есть метод для вычисления позиции в рейтинге. Если Гимнаст ещё не выступал, то позиция не определена (None).
Как вывести список гимнастов имеющих рейтинг (rank) отличный от None и отсортированный по возрастанию?

class Competition(models.Model):
    title = models.CharField()
 
class Gymnast(models.Model):
    parent = models.ForeignKey(Competition, related_name='gymnasts')
    name = models.CharField()
 
    def calc_rank(self):
        // вычисляется позиция в рейтинге
        if rank:
            return rank
        return None
    calc_rank.short_description = "место в зачёте"
    rank = property(calc_rank)

Если пытаюсь вывести с фильтрацией:

{% for gymnast in competition.gymnasts.all|rank %}

то получаю ошибку: «Invalid filter: ‘rank_position'».
Если пытаюсь вывести с сортировкой:

{% for gymnast in competition.gymnasts.all|dictsort:"rank" %}

то ничего не выводится…


Добавить комментарий