#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
-~----------~----~----~----~------~----~------~--~---

Reply via email to