Кажется, я не могу обернуться легкомысленными вопросами в django.
У меня есть игрок с сыгранными играми .
каждая игра имеет поле «многие ко многим» с игроками , которые играли в эту игру .
С игроком 1, как мне рассчитать, с каким противником он сыграл больше всего с Джанго Ормом?
В SQL, я думаю, это можно посчитать из таблицы «многие ко многим», например:
SELECT player_id, count(*)
FROM play_player
WHERE play_id in (SELECT play_id FROM play_player WHERE player_id = 'player1_id')
Это мои модели:
class Game(models.Model):
"""A game to be played and/or owned"""
name = models.CharField(max_length=255)
class Player(models.Model):
"""Someone who plays games"""
name = models.CharField(max_length=255)
games = models.ManyToManyField(Game)
class Play(models.Model):
"""Players have played a game"""
name = models.CharField(max_length=50, null=True, blank=True)
description = models.TextField(max_length=250, null=True, blank=True)
date = models.DateField(
default=timezone.now, help_text='When was the game played?')
game = models.ForeignKey(
Game,
on_delete=models.SET_NULL,
null=True,
help_text='What game was played?')
players = models.ManyToManyField(Player, help_text='Who was playing?')
winner = models.ForeignKey(
Player, on_delete=models.SET_NULL, null=True, related_name='winner')
Суть моделей
EDIT:
После того, как я объяснил в своем посте, что SQL может быть чем-то вроде запроса к таблице «многие ко многим», я получил несколько новых идей для терминов Google.
Я еще раз пойду и отвечу на свой вопрос, если скоро получу.
Я бился головой об этой прошлой ночью, но новый день мог быть всем, что было нужно. Мне нужна резиновая утка, с которой я могу поговорить до публикации.
EDIT2:
Я отправил свой собственный ответ ниже, все еще рад принять предложения.