我有以下代码:
class Game(models.Model):
title = models.CharField(max_length=50)
summery = models.CharField(max_length=500)
key = models.IntegerField()
pin = models.CharField(max_length=12)
complete = models.BooleanField()
invite_sent = models.DateTimeField()
on = models.ForeignKey(Member, blank = True) #<----
class Member(models.Model):
email = models.CharField(max_length=100)
color = models.CharField(max_length=11)
game = models.ForeignKey(Game) #<----
“on”外键链接到其中一名成员(轮到他了)。游戏的所有成员都将其“游戏”外键设置为他们所在的游戏。问题是 Django 不会让我在声明之前引用一个类,并且因为我不能同时声明它们......
编辑:为了澄清事情,这里有一个例子。如果有五个成员玩一场游戏,则所有五个成员都将拥有该游戏的外键。另一方面,游戏对于轮到的特定成员有一个外键。
The ForeignKey 字段的 Django 文档 https://docs.djangoproject.com/en/4.0/ref/models/fields/#django.db.models.ForeignKey states:
如果需要在尚未定义的模型上创建关系,可以使用模型的名称,而不是模型对象本身。
所以在你的情况下,那就是:
class Game(models.Model):
# Other fields...
on = models.ForeignKey('Member', blank = True)
class Member(models.Model):
# Other fields...
game = models.ForeignKey(Game)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)