Fixed #17429 -- Ensured that `Meta.ordering=None` works the same if it were an empty list. Thanks to self[at]dicos[dot]ru for the report and to bigkevmcd for the patch.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17334 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
Julien Phalip 2012-01-03 09:06:19 +00:00
parent 31b1cbc623
commit c93933441e
2 changed files with 14 additions and 1 deletions

View File

@ -347,7 +347,9 @@ class SQLCompiler(object):
elif not self.query.default_ordering: elif not self.query.default_ordering:
ordering = self.query.order_by ordering = self.query.order_by
else: else:
ordering = self.query.order_by or self.query.model._meta.ordering ordering = (self.query.order_by
or self.query.model._meta.ordering
or [])
qn = self.quote_name_unless_alias qn = self.quote_name_unless_alias
qn2 = self.connection.ops.quote_name qn2 = self.connection.ops.quote_name
distinct = self.query.distinct distinct = self.query.distinct

View File

@ -830,6 +830,17 @@ class Queries1Tests(BaseQuerysetTest):
1 1
) )
def test_ticket17429(self):
"""
Ensure that Meta.ordering=None works the same as Meta.ordering=[]
"""
original_ordering = Tag._meta.ordering
Tag._meta.ordering = None
self.assertQuerysetEqual(
Tag.objects.all(),
['<Tag: t1>', '<Tag: t2>', '<Tag: t3>', '<Tag: t4>', '<Tag: t5>'],
)
Tag._meta.ordering = original_ordering
class Queries2Tests(TestCase): class Queries2Tests(TestCase):
def setUp(self): def setUp(self):