`peewee`如何获取外键的父模型
Posted
技术标签:
【中文标题】`peewee`如何获取外键的父模型【英文标题】:`peewee` how to get the parent model of a foreign key 【发布时间】:2020-11-26 18:49:47 【问题描述】:假设我创建了几个 pweewee
link 模型
db = SqliteDatabase('people.db')
class Person(Model):
name = CharField()
birthday = DateField()
class Meta:
database = db # This model uses the "people.db" database.
class Pet(Model):
owner = ForeignKeyField(Person, backref='pets')
name = CharField()
animal_type = CharField()
class Meta:
database = db # this model uses the "people.db" database
class Car(Model):
owner = ForeignKeyField(Person, backref='cars')
model = CharField()
class Meta:
database = db # this model uses the "people.db" database
如您所见,Car
和 Pet
模型都连接到 Person
。假设我有一个对象可以是
car
或 pet
。我不确定哪个,但我知道owner
字段是一个外国字段。如何获取该字段的父模型?
【问题讨论】:
【参考方案1】:好的,我设法找到了答案。
obj._meta.fields
会给我们一个字典,其中键是字段名,值是字段对象。这意味着,我们可以通过以下方式获取字段对象:
owner_field = obj._meta.fields['owner']
现在,要获取模型及其相关的字段,我们需要执行owner_field.rel_model
和owner_field.rel_field
【讨论】:
以上是关于`peewee`如何获取外键的父模型的主要内容,如果未能解决你的问题,请参考以下文章
ef core 如何一次从具有外键的不同表中获取数据? (数据库优先)