我试图用peewee在数据库中创建带有外键的表。
玩家表对团队表有ForeignKey,团队表对Player table有ForeignKey。当我运行代码时
NameError: name 'Team' is not defined
这是我的代码:
class Player(Model):
nickname = CharField(max_length=30)
steam_id = CharField(max_length=15)
team = ForeignKeyField(Team)
class Meta:
database = db
class Team(Model):
name = CharField(max_length=30)
captain = ForeignKeyField(Player)
class Meta:
database = db
Player.create_table()
Team.create_table()
有人能帮我吗?:)
出现此错误是因为您在定义}依赖于{}。在
Team
之前引用了Player
中的Team
。你有一个循环依赖。Team
依赖于Player
,而{我的第一个建议是放弃一个依赖关系。你真的需要在两个表中引用另一个吗?在
如果您这样做,那么peewee文档有一个完整的部分专门用来处理这种情况:http://peewee.readthedocs.org/en/latest/peewee/models.html#circular-foreign-key-dependencies
您需要使用DeferredForeignKey这使用Django样式的类型作为字符串方法,但是附带一个警告:它不会为您创建数据库约束
所以
使用
^{pr2}$后来呢
相关问题 更多 >
编程相关推荐