From ae64c23b391a49d45118ddc413bc2a2ce60df2d0 Mon Sep 17 00:00:00 2001 From: zyegfryed Date: Tue, 29 Mar 2011 14:59:50 +0200 Subject: [PATCH] Fixed related subclasses parsing. Was raising AttributeError on FileField. --- model_utils/managers.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/model_utils/managers.py b/model_utils/managers.py index 7b764dd..8501e45 100644 --- a/model_utils/managers.py +++ b/model_utils/managers.py @@ -2,16 +2,16 @@ from types import ClassType from django.contrib.contenttypes.models import ContentType from django.db import models -from django.db.models.fields.related import SingleRelatedObjectDescriptor +from django.db.models.fields.related import OneToOneField from django.db.models.manager import Manager from django.db.models.query import QuerySet class InheritanceQuerySet(QuerySet): def select_subclasses(self, *subclasses): if not subclasses: - subclasses = [o for o in dir(self.model) - if isinstance(getattr(self.model, o), SingleRelatedObjectDescriptor) - and issubclass(getattr(self.model,o).related.model, self.model)] + subclasses = [rel.var_name for rel in self.model._meta.get_all_related_objects() + if isinstance(rel.field, OneToOneField) + and issubclass(rel.field.model, self.model)] new_qs = self.select_related(*subclasses) new_qs.subclasses = subclasses return new_qs