Я к вам опять со своими баранами )
Имеются модели:
class Player(models.Model):
steamid = models.BigIntegerField();
class Player_server_session(models.Model):
player = models.ForeignKey(Player)
server = models.ForeignKey(Server)
connect_timestamp = models.DateTimeField()
disconnect_timestamp = models.DateTimeField(null=True)
class Player_display_name(models.Model):
player = models.ForeignKey(Player)
display_name = models.CharField(max_length=128)
last_use_timestamp = models.DateTimeField()
Я хочу для заданного сервера отобразить игроков с числом их сессий на сервере, с сортировкой по числу сессий:
Player_server_session.objects.filter(server=server).values('player').annotate(Count('player')).order_by('-player__count')
А теперь я хочу отобразить steamid и display_names.
Player_server_session.objects.filter(server=server).select_related('player').prefetch_related('player__player_display_name_set').values('player').annotate(Count('player')).order_by('-player__count')
Однако из-за values каждый элемент так и остается словарем, содержащим 'player' в виде id и 'player__count'. А без values я не знаю как посчитать число сессий.
Подскажите как выразить одним запросом.