Skip to content

Instantly share code, notes, and snippets.

@loic
Created September 22, 2014 07:56
Show Gist options
  • Select an option

  • Save loic/f3f5078a521e86faf6fd to your computer and use it in GitHub Desktop.

Select an option

Save loic/f3f5078a521e86faf6fd to your computer and use it in GitHub Desktop.
diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py
index bd52d8e..1f580de 100644
--- a/django/db/models/fields/related.py
+++ b/django/db/models/fields/related.py
@@ -370,14 +370,11 @@ class SingleRelatedObjectDescriptor(object):
return hasattr(instance, self.cache_name)
def get_queryset(self, **hints):
- # Gotcha: we return a `Manager` instance (i.e. not a `QuerySet`)!
- return self.related.model._base_manager.db_manager(hints=hints)
+ return self.related.model._base_manager.db_manager(hints=hints).all()
def get_prefetch_queryset(self, instances, queryset=None):
if queryset is None:
- # Despite its name `get_queryset()` returns an instance of
- # `Manager`, therefore we call `all()` to normalize to `QuerySet`.
- queryset = self.get_queryset().all()
+ queryset = self.get_queryset()
queryset._add_hints(instance=instances[0])
rel_obj_attr = attrgetter(self.related.field.attname)
@@ -503,16 +500,13 @@ class ReverseSingleRelatedObjectDescriptor(object):
# If the related manager indicates that it should be used for
# related fields, respect that.
if getattr(rel_mgr, 'use_for_related_fields', False):
- # Gotcha: we return a `Manager` instance (i.e. not a `QuerySet`)!
- return rel_mgr
+ return rel_mgr.all()
else:
return QuerySet(self.field.rel.to, hints=hints)
def get_prefetch_queryset(self, instances, queryset=None):
if queryset is None:
- # Despite its name `get_queryset()` may return an instance of
- # `Manager`, therefore we call `all()` to normalize to `QuerySet`.
- queryset = self.get_queryset().all()
+ queryset = self.get_queryset()
queryset._add_hints(instance=instances[0])
rel_obj_attr = self.field.get_foreign_related_value
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment