У меня есть модель AuthUser, в которой я использую вызов get_profile()
, чтобы получить информацию о пользователе (игнорируйте тот факт, что профили устарели - я не использую их в качестве профилей). Однако существуют две разные модели профиля (Student
и StaffMember
), как подклассификация абстрактной модели (SchoolPerson
). Следующий код работал в django 1.6, но больше не работает на django 1.8:Проверка суперкласса связанной модели в django
def get_profile(self):
for related in self._meta.get_all_related_objects():
if related.model.__base__.__name__ == 'SchoolPerson': # TODO - might we have non-SchoolPerson profiles?
try:
return getattr(self, related.get_accessor_name())
except ObjectDoesNotExist:
pass
raise ObjectDoesNotExist
Любые идеи?
Почему это не работает? Что такое трассировка? API-интерфейс _meta был нормализован в django 1.8 – Alvaro