1
0
mirror of https://github.com/django/django.git synced 2025-07-06 10:49:17 +00:00

Fixed #6957 -- Removed a stray reference to QuerySet._select_related and added

a way to copy the select_related() settings from an existing queryset.


git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@7425 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Malcolm Tredinnick 2008-04-15 04:52:39 +00:00
parent 81b3043827
commit c934beea01
2 changed files with 8 additions and 2 deletions

View File

@ -750,8 +750,7 @@ class ChangeList(object):
for bit in self.query.split(): for bit in self.query.split():
or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.lookup_opts.admin.search_fields] or_queries = [models.Q(**{construct_search(field_name): bit}) for field_name in self.lookup_opts.admin.search_fields]
other_qs = QuerySet(self.model) other_qs = QuerySet(self.model)
if qs._select_related: other_qs.dup_select_related(qs)
other_qs = other_qs.select_related()
other_qs = other_qs.filter(reduce(operator.or_, or_queries)) other_qs = other_qs.filter(reduce(operator.or_, or_queries))
qs = qs & other_qs qs = qs & other_qs

View File

@ -402,6 +402,13 @@ class _QuerySet(object):
obj.query.max_depth = depth obj.query.max_depth = depth
return obj return obj
def dup_select_related(self, other):
"""
Copies the related selection status from the queryset 'other' to the
current queryset.
"""
self.query.select_related = other.query.select_related
def order_by(self, *field_names): def order_by(self, *field_names):
"""Returns a new QuerySet instance with the ordering changed.""" """Returns a new QuerySet instance with the ordering changed."""
assert self.query.can_filter(), \ assert self.query.can_filter(), \