Ticket #15959: 15959-r16345.diff

File 15959-r16345.diff, 1.4 KB (added by Victor van den Elzen <victor.van.den.elzen@…>, 13 years ago)
  • django/db/models/query.py

    diff --git a/django/db/models/query.py b/django/db/models/query.py
    index 6a6a829..8e37f71 100644
    a b class EmptyQuerySet(QuerySet):  
    11261126        """
    11271127        return self
    11281128
     1129    def values(self, *fields):
     1130        """
     1131        Always returns EmptyQuerySet.
     1132        """
     1133        return self
     1134
     1135    def values_list(self, *fields, **kwargs):
     1136        """
     1137        Always returns EmptyQuerySet.
     1138        """
     1139        return self
     1140
    11291141    def update(self, **kwargs):
    11301142        """
    11311143        Don't update anything.
  • tests/regressiontests/queries/tests.py

    diff --git a/tests/regressiontests/queries/tests.py b/tests/regressiontests/queries/tests.py
    index 31856ba..31351f5 100644
    a b class EmptyQuerySetTests(TestCase):  
    14711471            Number.objects.none().values('num').order_by('num'), []
    14721472        )
    14731473
     1474    def test_bare_emptyqueryset_values(self):
     1475        # #15959 -- .values()/.values_list() fails on EmptyQuerySet
     1476        self.assertQuerysetEqual(
     1477            EmptyQuerySet().values('id'), []
     1478        )
     1479        self.assertQuerysetEqual(
     1480            EmptyQuerySet().values_list('id', flat=False), []
     1481        )
     1482
    14741483    def test_values_subquery(self):
    14751484        self.assertQuerysetEqual(
    14761485            Number.objects.filter(pk__in=Number.objects.none().values("pk")),
Back to Top