Учитывая экземпляр модели mi
и имя атрибута an
, getattr(mi, an)
извлечет значение атрибута an
для объекта mi
. Это повысит AttributeError
, если объект mi
не имеет атрибута с таким именем; если вы хотите избежать этого, попробуйте, например, getattr(mi, an, None)
.
Так что если у вас есть список имен атрибутов la
,
[getattr(mi, x, None) for x in la]
дает вам список значений различных атрибутов, имена которых находятся в la
для данного экземпляра mi
.
Если у вас также есть список экземпляров li
, и вам нужен список списков (один внешний список на экземпляр, каждый со всеми значениями атрибутов),
[[getattr(mi, x, None) for x in la] for mi in li]
И так далее. Все это общие концепции и операции Python, и они применяются к экземплярам моделей, которые вы извлекли из хранилища данных, не меньше (и не больше), чем к любым другим объектам Python.