Skip to main content
 首页 » 编程设计

python之获取django对象的一对多集合属性的名称

2024年11月01日30飞鱼

我看到您可以通过调用从 Django 模型对象中获取所有字段名称

model_instance._meta.fields 

但这不包括一对多访问器。例如,如果我有一个 House 模型和一个 Room 模型,并且一个 Room 有一个用于 House 的外键字段,那么 House 上现在有一个名为 room_set 的属性。如何获取模型实例的这些属性名称的列表?

谢谢

请您参考如下方法:

不确定这是最好的方法,但它有效:

from django.db.models.fields.related import ForeignRelatedObjectsDescriptor 
print [prop for prop in dir(House) if isinstance(getattr(House, prop), ForeignRelatedObjectsDescriptor)] 

将打印:

['room_set']