我在处理Django项目中的控制器逻辑的位置时遇到了问题。Django控制器逻辑在哪里?
我有玩家的模型(像国际象棋选手一样),他们将被ELO分数评分。经过一轮后,两名球员的ELO分数得到修改和更新。接下来的比赛是根据迄今为止参加比赛次数最少的选手进行选择的。
class Player(models.Model):
tournament_class = models.ForeignKey(Topic, on_delete=models.CASCADE) # each player is part of a single tournament class
name = models.CharField(max_length=200)
contests = models.IntegerField(default=0)
last_contest = models.IntegerField(default=0) # round number of last contest participated in
ELO = models.FloatField(default=1000) # current ELO ranking
我在哪里可以把控制逻辑如下面的功能?
def select_candidates()
# return candidates who have participated in the least number of contests
def update_ELO_scores (winner,loser)
# updates ELO scores based on match results
从我读过的内容来看,我认为这些函数不应该存在于模型中,因为这些函数并不涉及单个对象实例。他们可能属于自定义管理器,因为他们在QuerySets上工作,或者他们属于QuerySet管理器或单独的包(python文件)?