我为游戏中的每个玩家都有一个记分模型,以及一个使用前一个并在游戏中比较它们的匹配模型。
'p1' 和 'p2' 字段仅作为控制器用于识别我的问题发生的时间和地点。他们在创建时获得硬编码的 board-user 的用户 ID。(并且它们总是按递增顺序创建;p2总是p1+1)
问题:有时,很少,似乎完全随机,板的顺序会颠倒。由于一段时间以来我一直试图找到这个问题的根源但没有成功,我想尝试一种不同的方法。
有没有办法强制 m2m-field 中对象的顺序?
代码:
型号:
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)
我在想这样的事情:
视图.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' is an invalid keyword argument for this function