From 05ebc901fef3e8982db320d269357bf9096f3ead Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Mon, 15 Oct 2007 00:29:55 +0000 Subject: [PATCH] queryset-refactor: Fixed a couple of typos that were messing up extra(select=...). git-svn-id: http://code.djangoproject.com/svn/django/branches/queryset-refactor@6512 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/db/models/query.py | 2 +- django/db/models/sql/query.py | 2 +- tests/regressiontests/queries/models.py | 6 ++++++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/django/db/models/query.py b/django/db/models/query.py index 25febd6d88..b2ed0d36a7 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -96,7 +96,7 @@ class _QuerySet(object): else: obj = self.model(*row[:index_end]) for i, k in enumerate(extra_select): - setattr(obj, k[0], row[index_end + i]) + setattr(obj, k, row[index_end + i]) yield obj def count(self): diff --git a/django/db/models/sql/query.py b/django/db/models/sql/query.py index 5d96ec8020..3c0e342c86 100644 --- a/django/db/models/sql/query.py +++ b/django/db/models/sql/query.py @@ -342,7 +342,7 @@ class Query(object): """ qn = self.quote_name_unless_alias result = [] - if self.select or self.extra_select: + if self.select: for col in self.select: if isinstance(col, (list, tuple)): result.append('%s.%s' % (qn(col[0]), qn(col[1]))) diff --git a/tests/regressiontests/queries/models.py b/tests/regressiontests/queries/models.py index d47792ecaa..3a80e2da61 100644 --- a/tests/regressiontests/queries/models.py +++ b/tests/regressiontests/queries/models.py @@ -310,6 +310,12 @@ Bug #2076 >>> Ranking.objects.extra(tables=['django_site'], order_by=['-django_site.id', 'rank']) [, , ] +>>> qs = Ranking.objects.extra(select={'good': 'rank > 2'}) +>>> [o.good for o in qs.extra(order_by=('-good',))] == [True, False, False] +True +>>> qs.extra(order_by=('-good', 'id')) +[, , ] + Bugs #2874, #3002 >>> qs = Item.objects.select_related().order_by('note__note', 'name') >>> list(qs)