ゲーム内の各プレイヤーのスコア保持モデルと、前のモデルを使用してゲーム内で比較するマッチモデルがあります。
'p1'および'p2'-フィールドは、問題がいつどこで発生したかを識別するためのコントローラーとしてのみ存在します。それらは、作成時にハードコードされたボードユーザーのユーザーIDを取得します。(そしてそれらは常に昇順で作成されます;p2は常にp1+ 1です)
問題:まれに、完全にランダムに見えるものが、ボードの順序が逆になることがあります。私はしばらくの間これの原因を見つけようとして成功しなかったので、別のアプローチを試してみたいと思います。
m2mフィールド内のオブジェクトの順序を強制する方法はありますか?
コード:
モデル:
class Scoreboard(models.Model):
user = models.ForeignKey(User)
score1 = models.IntegerField(default=0)
等々...
class Match(models.Model):
pl1 = models.IntegerField(default=0)
pl2 = models.IntegerField(default=0)
boards = models.ManyToManyField(Scoreboard)
active = models.IntegerField(default=0)
turn = models.IntegerField(default=0)
私はこのようなことを考えています:
views.py
results = Match.objects.get(id=matchID)
boards = results.boards.all()
board1 = boards[0]
board2 = boards[1]
boardList.append(board1)
boardList.append(board2)
if boards[0].id>boards[1].id:
print boardList
boardList.reverse()
print boardList
m=Match(id=matchID, boards=boardList)
m.save()
しかし、これは私にエラーを与えます:'boards'はこの関数の無効なキーワード引数です