Не совсем ясно, на что нацелены ваши классы "реализации", просто взглянув на код выше. Неясно, являются ли классы реализации еще одной моделью ORM или просто пользовательским классом, который предоставляет метод save ().
Пару уловок только от скимминга, что выше.
Линия:
self.impl = MyImplementationClass(my_facade_class_instance=self, some_field=self.some_field, account=self.account)
приходит до вызова super (), что означает, что весьма вероятно, self.some_field
и self.account
не будут правильно инициализированы во время передачи его другой модели.
Вторая проблема заключается в том факте, что, как написано выше, два экземпляра (вероятно, в зависимости от того, как написан MyImplementationClass) содержат циклические ссылки друг на друга. Это означает, что количество ссылок не будет равно 0, когда объекты выходят из области видимости. Циклический GC (вероятно) со временем будет собирать эти объекты мусором, но вы проигрываете детерминированную сборку мусора, которая (на мой взгляд) является действительно мощной функцией Python.
Похоже, вы пытаетесь реализовать так называемое «родовое отношение», которое уже есть в приложении contrib.contenttypes django: http://docs.djangoproject.com/en/dev/ref/contrib/contenttypes/#id1 Если вы просто хотите, чтобы объект ссылался на один из для многих типов моделей вы можете сделать это, используя общие отношения из «типов содержимого».