我正在尝试在django ORM中找到找到相关数据最佳组合的典型问题的最佳解决方案。我有以下型号:
class Player (models.Model):
nickname = models.CharField(max_length=200)
class Match (models.Model):
winner = models.IntegerField()
class MatchPlayer(models.Model):
player = models.ForeignKey(Player)
match = models.ForeignKey(Match)
team = models.IntegerField()
所以,基本上我们有某场比赛的比赛,其中两支球队每人超过1人,互相比赛,并且总共有1名球员(1支球队,数名球员)。
球队没有一个固定的阵容,也就是说,在比赛中扮演盟友的球员,可能会在下一场比赛中扮演敌人(或根本不参加比赛)。
我希望找到玩家的一对(或者,理想情况下,更一般的形式,任何N个玩家),只要他们一起玩(或者再次,理想情况下,成对的玩家和他们的胜利%),他们的胜率最高%,在django。
通常在SQL中我会自己加入播放器表格,其中matchplayer_1.match = matchplayer_2.match和matchplayer_1.player!= matchplayer_2.player按两个玩家字段分组并获取有关match.winner的信息。但是在Django中,据我所知,如果模型中没有明确的关系,我就不能随意加入一个表。
有办法解决这个问题吗?
提前致谢!
布鲁诺
(更新:上面添加的模型)