Django 模型 (ManyToManyField?) - 多次添加相同的对象并保存顺序



我有一个类似战列舰的网格(位置为A1、B1、C1、…A2、B2、C2、…(和在网格上移动的对象,其中一个位置在任何给定时间只能被一个对象占据。我正在尝试使用Django模型来存储每个对象所走的路径,并想知道最好的方法。

例如,我希望能够查询并查看ObjectZ已经到达[A1,B1,B2,C2,C3,D3,D2,C2,C3],然后我就会知道ObjectZ从A1开始,现在在C3。

我尝试使用ManyToManyField,但很快就意识到我不能多次添加同一个对象(也就是说,我不能不止一次添加C2(。

提前感谢!

这里的解决方案可以是创建自己的类,将这两个类链接起来,并且基于战列舰,您可以有一个订单字段,每次创建新的船舶移动时都会增加该字段,这样您就可以跟踪订单。

class Movements(models.Model):
order = models.IntegerField()
battleship = models.ForeignKey(Battleship, on_delete=models.CASCADE, related_name="movements")
square = models.ForeignKey(Square, on_delete=models.CASCADE, related_name="movements")

最新更新