我有一个使用像这样的外键移动的游戏模式:我的模型在Django中的设计?
class Moves(models.Model):
player1 = []
player2 = []
def make_move(self, a_int, b_int, c_bool):
if c_bool:
self.player1.append(a_int)
else:
self.player2.append(b_int)
#...irrelevant functions
class Game(models.Model):
#...irrelevant variables
moves = models.ForeignKey(Moves)
所以我想每场比赛有一组唯一的举动。 Moves存储在player1和player2的列表中。
在我的测试中,我做这样的事情所以......
class MakeMoveTestCase(TestCase):
def test_make_move(self):
g = Game()
g.moves.make_move(3, 0, False) #####throws error here
g.moves.make_move(4, 0, False)
,并得到这个错误:
TypeError: int() argument must be a string or a number, not 'list'
我需要帮助摆脱这种错误的。另外,如果你有更好的设计,我希望看到它。
此举代表了我创建的一个名为“点”的点。所以像这样的东西。对于玩家1而言[点(x = 4,y = 0),点(x = 4,y = 1),点(x = 4,y = 2),点(x = 4,y = 3)等等 – Ryan
我知道我在创建一个没有现场类的模型,因此我怀疑我的设计。我怎么能做得更好? – Ryan
我明白你在说什么了,但是我会如何处理2名球员呢? – Ryan