From e90e8ffc0f053740861c0e0e0fefba87d9543bdb Mon Sep 17 00:00:00 2001 From: Samuel Abels Date: Sun, 25 Nov 2018 12:17:10 +0100 Subject: [PATCH] add PaginatedRawQuerySet.count for better Django compatibility --- django_find/rawquery.py | 2 ++ tests/test_rawquery.py | 8 ++++++++ 2 files changed, 10 insertions(+) diff --git a/django_find/rawquery.py b/django_find/rawquery.py index dcfcd84..58ad13d 100644 --- a/django_find/rawquery.py +++ b/django_find/rawquery.py @@ -74,3 +74,5 @@ def __len__(self): row = cursor.fetchone() self.count_cache = int(row[0]) return self.count_cache + + count = property(__len__) # For better compatibility to Django's QuerySet diff --git a/tests/test_rawquery.py b/tests/test_rawquery.py index c2ff1f9..684e91a 100644 --- a/tests/test_rawquery.py +++ b/tests/test_rawquery.py @@ -50,3 +50,11 @@ def testLen(self): self.assertEqual(len(self.query[:8]), 8) self.assertEqual(len(self.query[:]), 10) self.assertEqual(len(self.query[1:]), 9) + + def testCount(self): + self.assertEqual(self.query.count, 10) + self.assertEqual(self.query.count, 10) # Cached + self.assertEqual(self.query[2:8].count, 6) + self.assertEqual(self.query[:8].count, 8) + self.assertEqual(self.query[:].count, 10) + self.assertEqual(self.query[1:].count, 9)