.. self.answer ... Целью является получение AuditTrail для обновления контрольного журнала для модели SubjectConsent через экземпляр прокси-модели. Через обычное наследование классов модели менеджеры не наследуются. Я не уверен, относится ли это также к дизайну "модели прокси", но в моем случае менеджер AuditTrail отсутствует в модели прокси.
Добавление «history = AuditTrail ()» в модель прокси вызывает ошибку, поскольку AuditTrail добавляет себя в модель прокси, используя те же атрибуты модели.
Итак, все, что я мог бы сейчас придумать, это получить экземпляр модели и вызвать ее метод save () после super (SubjectConsentY1, self) .save (). Это дополнительный вызов БД, но, таким образом, журнал аудита обновляется через экземпляр прокси-модели.
class SubjectConsent(BaseSubjectConsent):
history = AuditTrail()
class SubjectConsentY1(SubjectConsent):
objects = SubjectY1Manager()
def save(self, *args, **kwargs):
# call super save() method to update the DB and get a pk
super(SubjectConsentY1, self).save(*args, **kwargs)
# get instance of model and save to update the audit trail
SubjectConsent.objects.get(pk=self.pk).save()
class Meta:
proxy = True