Hé les gars, je viens d'implémenter le backend de la mémoire locale de cache de Django dans mon code, mais il semble y avoir un problème.La mise en cache de Django semble causer des problèmes
je reçois l'erreur suivante lorsque vous essayez de voir le site (avec débogage):
Traceback (most recent call last):
File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 279, in run
self.result = application(self.environ, self.start_response)
File "/usr/lib/python2.6/dist-packages/django/core/servers/basehttp.py", line 651, in __call__
return self.application(environ, start_response)
File "/usr/lib/python2.6/dist-packages/django/core/handlers/wsgi.py", line 245, in __call__
response = middleware_method(request, response)
File "/usr/lib/python2.6/dist-packages/django/middleware/cache.py", line 91, in process_response
patch_response_headers(response, timeout)
File "/usr/lib/python2.6/dist-packages/django/utils/cache.py", line 112, in patch_response_headers
response['Expires'] = http_date(time.time() + cache_timeout)
TypeError: unsupported operand type(s) for +: 'float' and 'str'
J'ai vérifié mon code, pour tout mettre en cache semble être ok. Par exemple, j'ai ce qui suit dans mon middleware.
MIDDLEWARE_CLASSES = (
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.cache.UpdateCacheMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.FetchFromCacheMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware',
)
Mes paramètres pour Cache:
CACHE_BACKEND = 'locmem://'
CACHE_MIDDLEWARE_SECONDS = '3600'
CACHE_MIDDLEWARE_KEY_PREFIX = 'za'
CACHE_MIDDLEWARE_ANONYMOUS_ONLY = True
Et une partie de mon code (balise modèle):
def get_featured_images():
"""
provides featured images
"""
cache_key = 'featured_images'
images = cache.get(cache_key)
if images is None:
images = FeaturedImage.objects.all().filter(enabled=True)[:5]
cache.set(cache_key, images)
return {'images': images}
Toute idée de ce qui pourrait être le problème, du message d'erreur en dessous On dirait qu'il y a un problème dans cache.py de django?
Mise à jour !!! Définissez le cache temporel sur une chaîne!