make PolymorphicQuerySet.get_real_instances() an official part of the API
parent
b1905026bc
commit
f05b854a54
|
|
@ -92,7 +92,7 @@ class PolymorphicQuerySet(QuerySet):
|
||||||
self.polymorphic_disabled = not bool(kwargs.pop('polymorphic', False))
|
self.polymorphic_disabled = not bool(kwargs.pop('polymorphic', False))
|
||||||
return super(PolymorphicQuerySet, self).extra(*args, **kwargs)
|
return super(PolymorphicQuerySet, self).extra(*args, **kwargs)
|
||||||
|
|
||||||
def _get_real_instances(self, base_result_objects):
|
def get_real_instances(self, base_result_objects):
|
||||||
"""
|
"""
|
||||||
Polymorphic object loader
|
Polymorphic object loader
|
||||||
|
|
||||||
|
|
@ -100,6 +100,8 @@ class PolymorphicQuerySet(QuerySet):
|
||||||
|
|
||||||
return [ o.get_real_instance() for o in base_result_objects ]
|
return [ o.get_real_instance() for o in base_result_objects ]
|
||||||
|
|
||||||
|
but more efficiently.
|
||||||
|
|
||||||
The list base_result_objects contains the objects from the executed
|
The list base_result_objects contains the objects from the executed
|
||||||
base class query. The class of all of them is self.model (our base model).
|
base class query. The class of all of them is self.model (our base model).
|
||||||
|
|
||||||
|
|
@ -203,7 +205,7 @@ class PolymorphicQuerySet(QuerySet):
|
||||||
reached_end = True
|
reached_end = True
|
||||||
break
|
break
|
||||||
|
|
||||||
real_results = self._get_real_instances(base_result_objects)
|
real_results = self.get_real_instances(base_result_objects)
|
||||||
|
|
||||||
for o in real_results:
|
for o in real_results:
|
||||||
yield o
|
yield o
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue