Django <= 1.7
这为你提供了所有相关对象的属性名称:
links = [rel.get_accessor_name() for rel in a._meta.get_all_related_objects()]
然后,你可以使用类似这样的方法来获取所有相关对象:
for link in links: objects = getattr(a, link).all() for object in objects: # do something with related object instance
我花了一段时间试图弄清楚这一点,以便可以在我的一个模型中实现一种“观察者模式”。希望对你有所帮助。
Django 1.8以上
使用
_meta.get_fields():https : //docs.djangoproject.com/en/1.10/ref/models/meta/#django.db.models.options.Options.get_fields(另请参见
_get_fields()源中的反向)



