#7746: Paginator QuerySet count regression
----------------------------+-----------------------------------------------
Reporter: chrisrbennett | Owner: nobody
Status: new | Milestone: 1.0 alpha
Component: Core framework | Version: SVN
Keywords: paginator | Stage: Unreviewed
Has_patch: 0 |
----------------------------+-----------------------------------------------
The enhancement for #7478 committed in [7865] regresses on a previous bug
fix in [7819] related to !QuerySet paginiation.
I copied the try-wrapper fix from [7819] and this seems to handle the
exception:
{{{
try:
self._count = self.object_list.count()
except (AttributeError, TypeError):
self._count = len(self.object_list)
}}}
I have no clue why .count() model deepcopy is failing, but it has been
discussed previously in #7204. Perhaps there is a larger issue here:
{{{
Environment:
Django Version: 0.97-pre-SVN-7922
Python Version: 2.5.2
Traceback:
File "/usr/lib/python2.5/site-packages/django/core/handlers/base.py" in
get_response
86. response = callback(request, *callback_args,
**callback_kwargs)
File "/home/chris/src/msn/msn/../msn/search/views.py" in zipcode_search
64. "page": paginator.page(page_number),
File "/usr/lib/python2.5/site-packages/django/core/paginator.py" in page
35. number = self.validate_number(number)
File "/usr/lib/python2.5/site-packages/django/core/paginator.py" in
validate_number
26. if number > self.num_pages:
File "/usr/lib/python2.5/site-packages/django/core/paginator.py" in
_get_num_pages
56. hits = self.count - 1 - self.orphans
File "/usr/lib/python2.5/site-packages/django/core/paginator.py" in
_get_count
47. self._count = self.object_list.count()
File "/usr/lib/python2.5/site-packages/django/db/models/query.py" in count
290. return self.query.get_count()
File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py" in
get_count
215. obj = self.clone()
File "/usr/lib/python2.5/site-packages/django/db/models/sql/query.py" in
clone
173. obj.where = deepcopy(self.where)
File "/usr/lib/python2.5/copy.py" in deepcopy
173. y = copier(memo)
File "/usr/lib/python2.5/site-packages/django/utils/tree.py" in
__deepcopy__
61. obj.children = deepcopy(self.children, memodict)
File "/usr/lib/python2.5/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.5/copy.py" in _deepcopy_list
227. y.append(deepcopy(a, memo))
File "/usr/lib/python2.5/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.5/copy.py" in _deepcopy_tuple
234. y.append(deepcopy(a, memo))
File "/usr/lib/python2.5/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.5/copy.py" in _reconstruct
337. state = deepcopy(state, memo)
File "/usr/lib/python2.5/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.5/copy.py" in _deepcopy_dict
254. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.5/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.5/copy.py" in _deepcopy_list
227. y.append(deepcopy(a, memo))
File "/usr/lib/python2.5/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.5/copy.py" in _reconstruct
337. state = deepcopy(state, memo)
File "/usr/lib/python2.5/copy.py" in deepcopy
162. y = copier(x, memo)
File "/usr/lib/python2.5/copy.py" in _deepcopy_dict
254. y[deepcopy(key, memo)] = deepcopy(value, memo)
File "/usr/lib/python2.5/copy.py" in deepcopy
189. y = _reconstruct(x, rv, 1, memo)
File "/usr/lib/python2.5/copy.py" in _reconstruct
322. y = callable(*args)
File "/usr/lib/python2.5/copy_reg.py" in __newobj__
92. return cls.__new__(cls, *args)
Exception Type: TypeError
Exception Value: object.__new__(generator) is not safe, use
generator.__new__()
}}}
cc'ing those involved with #7478
--
Ticket URL: <http://code.djangoproject.com/ticket/7746>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---