Changeset 4488
- Timestamp:
- 02/11/07 18:16:17 (2 years ago)
- Files:
-
- django/trunk/django/db/models/query.py (modified) (2 diffs)
- django/trunk/tests/modeltests/lookup/models.py (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
django/trunk/django/db/models/query.py
r4475 r4488 198 198 counter = self._clone() 199 199 counter._order_by = () 200 counter._select_related = False 201 202 offset = counter._offset 203 limit = counter._limit 200 204 counter._offset = None 201 205 counter._limit = None 202 counter._select_related = False203 206 204 207 try: … … 214 217 else: 215 218 cursor.execute("SELECT COUNT(*)" + sql, params) 216 return cursor.fetchone()[0] 219 count = cursor.fetchone()[0] 220 221 # Apply any offset and limit constraints manually, since using LIMIT or 222 # OFFSET in SQL doesn't change the output of COUNT. 223 if offset: 224 count = max(0, count - offset) 225 if limit: 226 count = min(limit, count) 227 228 return count 217 229 218 230 def get(self, *args, **kwargs): django/trunk/tests/modeltests/lookup/models.py
r4475 r4488 59 59 0L 60 60 61 # count() should respect sliced query sets. 62 >>> articles = Article.objects.all() 63 >>> articles.count() 64 7L 65 >>> articles[:4].count() 66 4 67 >>> articles[1:100].count() 68 6L 69 >>> articles[10:100].count() 70 0 71 61 72 # Date and date/time lookups can also be done with strings. 62 73 >>> Article.objects.filter(pub_date__exact='2005-07-27 00:00:00').count()
