私はDjangoプロジェクトにコントローラのロジックを配置する場所を調整するのに問題があります。Djangoコントローラのロジックはどこにありますか?
私はELOスコアで評価されるプレイヤー(チェスプレーヤーのように思う)のためのモデルを持っています。ラウンド後、2人のプレイヤーは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ファイル)に属していますか?