peewee中ForeignKeyField对象的"related_name"属性是什么?
我正在尝试使用Python的peewee库,并创建一些外键来关联两个不同的模型。我在这里阅读peewee的文档。
文档中提到在创建ForeignKeyField时会用到“related_name”这个属性。看起来这个属性的值通常是你正在创建的类的复数形式,比如Tweet的复数是“tweets”。这个值是在你创建ForeignKeyField的表中为列命名吗?这个“related_name”属性是怎么用的,为什么要用它呢?
1 个回答
2
其实我从来没用过peewee,不过根据文档和我对Django ORM的了解(看起来很相似),我可以告诉你一些事情:
当你创建一个ForeignKeyField
时,所指向的模型(也就是外键的“目标”)会被添加一个新的属性,这样你就可以“反向”访问这个关系。
在你链接的示例教程中,你可以看到在外键声明之后,他们可以输入user.tweets
,这里的属性tweets
就是你在外键字段中传入的related_name
的名字。
通常这个名字用复数形式是因为外键定义了多对一的关系,所以反过来就是一对多:在这个例子中,每条推文都有一个指向用户的外键,因此每个用户可以有很多条推文。