Django динамический доступ к одному и тому же атрибуту в разных моделях
У меня есть разные модели, которые имеют следующий формат.
class Company(models.Model):
pass
class ModelA(models.Model):
company = models.ForeignKey(Company, models.CASCADE)
class ModelB(models.Model):
company = models.ForeignKey(Company, models.CASCADE)
class ModelC(models.Model):
modelb = models.ForeginKey(ModelC)
Я хочу написать общее поле отображения с помощью миксина в django admin для ModelA, ModelC следующим образом:
class FieldMixin:
@display(description='field')
def my_field(self, obj):
# normal solution would be this
if object is ModelA and object.company.is_active:
return 'active'
if object is ModelC and object.modelb.company.is_active
return 'active'
# i wanted something like this instead of above. It will be easier if object has immediate attribute but object can have same field in nested object as well.
object._meta.get_fields('company').is_active