我已经阅读了 Tortoise-ORM 的文档,但是,至少对我来说,文档并不清楚related_name
. tortoise.field.ForeignKeyField
它仅声明:
related_name:
The attribute name on the related model to reverse resolve the foreign key.
我正在使用 Aerich(Tortoise-ORM 迁移管理器),但我看不到对related_name
模型中使用的 ' 的单个引用。我还检查了数据库Postgres
,找不到任何关于它的参考资料。也许我不知道去哪里找。
不幸的是,在 Tortoise-ORM 文档中没有关于此的简单实用示例。
我有一个非常简单的模型,例如:
import tortoise
class Toy(tortoise.models.Model):
id = tortoise.fields.IntField(pk=True)
name = tortoise.fields.CharField(max_length=32)
owner = tortoise.fields.ForeignKeyField("models.Person", related_name='toys_owner')
builder = tortoise.fields.ForeignKeyField("models.Person", related_name='toys_builder')
class Person(tortoise.models.Model):
id = tortoise.fields.IntField(pk=True)
name = tortoise.fields.CharField(max_length=32)
async def main():
await tortoise.Tortoise.init(
db_url='sqlite://:memory:',
modules={'models': ["__main__"]}
)
await tortoise.Tortoise.generate_schemas()
person_a = await Person.create(name="Gepheto")
person_b = await Person.create(name="Fairy")
person_c = await Person.create(name="Nobody")
pinocchio = await Toy.create(name="Pinocchio", builder=person_a, owner=person_b)
print(pinocchio)
await tortoise.Tortoise.close_connections()
if __name__ == '__main__':
tortoise.run_async(main())
在这方面如何related_name
运作?