我正在尝试使用python的peewee库并创建一些外键来关联两个不同的模型。我正在阅读这里的peewee文档
其中有几个点在创建ForeignKeyField时使用“related_name”属性。它似乎遵循一般模式,其中“related_name”的值是您正在创建的类的复数形式(Tweet - >“tweets”)。此值是否为您正在创建ForeignKeyField的表中的列创建名称?如何以及为什么使用这个“related_name”属性?
答案 0 :(得分:2)
我实际上从未使用过peewee,但是从docs和我对Django ORM(看起来很相似)的知识来看,这就是我能说的:
创建ForeignKeyField
时,您引用的模型(FK“目的地”)也将使用新属性进行扩展,以便您可以“向后”访问关系。
在您链接的示例教程中,您可以看到在FK声明之后,他们可以键入user.tweets
,其中属性tweets
将您传递的名称作为related_name
传递给FK Field。
它通常是复数的原因是ForeignKey定义了多对一关系,因此反过来将是一对多:在该示例中,每个Tweet对用户具有FK,因此easch用户将被允许有很多推文。