links = [rel.get_accessor_name() for rel in a._meta.get_all_related_objects()]
Затем вы можете использовать что-то вроде этого, чтобы получить все связанные объекты:
for link in links:
objects = getattr(a, link.name).all()
for object in objects:
# do something with related object instance
Из официальных документов Django 1.10:
MyModel._meta.get_all_related_objects () становится:
[
f for f in MyModel._meta.get_fields()
if (f.one_to_many or f.one_to_one)
and f.auto_created and not f.concrete
]
Итак, взяв утвержденный пример, мы бы использовали:
links = [
f for f in MyModel._meta.get_fields()
if (f.one_to_many or f.one_to_one)
and f.auto_created and not f.concrete
]
for link in links:
objects = getattr(a, link.name).all()
for object in objects:
# do something with related object instance