1
私はTeam
と呼ばれる、勝敗のクラスを持っています。
win_pct
でチームを並べ替えることができます。これは、ゲームの総数に対する勝ちの割合(つまり、wins.count()/(wins.count() + losses.count())
)でなければなりません。派生計算によってオブジェクトをソートする方法は?
class Team(TimestampModerated):
name = models.CharField(max_length=80, blank=False, null=False)
wins = models.ManyToManyField('self', blank=True, symmetrical=False, related_name='related_wins')
losses = models.ManyToManyField('self', blank=True, symmetrical=False, related_name='related_losses')
def num_wins(self):
return self.wins.count()
def num_losses(self):
return self.losses.count()
def win_pct(self):
return self.wins.count()/(self.wins.count() + self.losses.count())
だから、私の見解で、私はこのようなものがあります:
@list_route
def teams_list(self, request):
teams = Team.objects.all().order_by('-win_pct')
page = self.paginate_queryset(teams)
if page is not None:
serializer = self.get_serializer(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.get_serializer(teams, many=True)
return Response(
data=serializer.data
)
をしかし、それは単にエラーを与える:
django.core.exceptions.FieldError: Cannot resolve keyword 'win_pct' into a field. Choices are: created, id, losses, moderation_code, related_losses, related_wins, name, updated, wins