#13093: cache_page decorator doesn't work on callable classes
--------------------------+-------------------------------------------------
 Reporter:  russellm      |       Owner:  nobody    
   Status:  new           |   Milestone:  1.2       
Component:  Cache system  |     Version:  1.2-beta  
 Keywords:                |       Stage:  Unreviewed
Has_patch:  0             |  
--------------------------+-------------------------------------------------
 The cache_page() decorator works fine on views, but fails if you use it on
 a callable class::
 class:
 {{{
 class MyView(object):
     def __call__(self, request):
         return HttpResponse()
 }}}

 If you try to wrap this view in urls.py ({{{ cache_page(MyView(), 60)
 }}}), you get an error saying "MyView doesn't have attribute __name__".
 cache_page uses the __name__ attribute to build a cache key, but classes
 dont have a __name__ attribute. cache_page should also check for
 __class__.__name__ (or some similar key with a per-instance feature) to
 allow for wrapping callable classes.

 This is a problem for 1.2, because feed views have been moved to a class-
 based structure, so it is no longer possible to cache feed views using
 cache_page().

-- 
Ticket URL: <http://code.djangoproject.com/ticket/13093>
Django <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