Ver Mensaje Individual
  #3 (permalink)  
Antiguo 19/08/2012, 16:55
Avatar de jhg
jhg
 
Fecha de Ingreso: marzo-2012
Mensajes: 96
Antigüedad: 12 años, 1 mes
Puntos: 1
Respuesta: Cache en servidor no funciona

Imposible, en el peor de los casos es 1 de forma pedeterminada. El SITE_ID cambia dinamicamente al id del objeto site del dominio que haya sido pedido (empieza en 1 y es incremental) o vale 1 por defecto. Hice mi propio middleware para esto.

EDITO: pruebo la cache desde la shell plus y funciona bien, no entiendo porque en el servidor de desarrollo no funciona.

EDITO para poner el código del middleware del SITE_ID:

En settings.py
Código Python:
Ver original
  1. from sew.middleware.DynamicSites import DynamicSiteId, SITE_THREAD_INFO
  2.  
  3.  
  4. # ID de sitio dinamico segun peticiones
  5. SITE_ID = DynamicSiteId()

En DynamicSites.py
Código Python:
Ver original
  1. #-*- coding: UTF-8 -*-
  2. """ For use middleware: <app>.middleware.DynamicSites.SetDynamicSites
  3. from <app>.middleware.DynamicSites import DynamicSiteId, SITE_THREAD_INFO
  4. SITE_ID = DynamicSiteId()
  5. MEDIA_URL_DIR = '/cargas/'
  6. STATIC_URL_DIR = '/estaticos/' """
  7. from threading import local
  8. from django.conf import settings
  9. from django.contrib.sites.models import Site
  10. import re
  11.  
  12.  
  13. class SetDynamicSites(object):
  14.     """ Change SITE_ID dinamics. """
  15.     def process_request(self, request):
  16.         try:
  17.             current_site = Site.objects.get(domain=request.get_host())
  18.             settings.SITE_ID._set(current_site.id)
  19.             settings.MEDIA_URL = '//' + request.get_host() + \
  20.                 settings.MEDIA_URL_DIR
  21.             settings.STATIC_URL = '//' + request.get_host() + \
  22.                 settings.STATIC_URL_DIR
  23.             settings.HOST = request.get_host()
  24.         except:
  25.             settings.SITE_ID._set(1)
  26.         return None
  27.  
  28.  
  29. SITE_THREAD_INFO = local()
  30.  
  31.  
  32. class DynamicSiteId(object):
  33.     def __init__(self):
  34.         SITE_THREAD_INFO.SITE_ID = 1
  35.  
  36.     def __unicode__(self):
  37.         try:
  38.             return unicode(SITE_THREAD_INFO.SITE_ID)
  39.         except AttributeError:
  40.             SITE_THREAD_INFO.SITE_ID = 1
  41.             return unicode(SITE_THREAD_INFO.SITE_ID)
  42.  
  43.     def __str__(self):
  44.         try:
  45.             return str(SITE_THREAD_INFO.SITE_ID)
  46.         except AttributeError:
  47.             SITE_THREAD_INFO.SITE_ID = 1
  48.             return str(SITE_THREAD_INFO.SITE_ID)
  49.  
  50.     def __hash__(self):
  51.         try:
  52.             return SITE_THREAD_INFO.SITE_ID
  53.         except AttributeError:
  54.             SITE_THREAD_INFO.SITE_ID = 1
  55.             return SITE_THREAD_INFO.SITE_ID
  56.  
  57.     def __int__(self):
  58.         try:
  59.             return SITE_THREAD_INFO.SITE_ID
  60.         except AttributeError:
  61.             SITE_THREAD_INFO.SITE_ID = 1
  62.             return SITE_THREAD_INFO.SITE_ID
  63.  
  64.     def _set(self, value):
  65.         SITE_THREAD_INFO.SITE_ID = int(value)
__________________
JHG

Última edición por jhg; 19/08/2012 a las 17:17 Razón: Añadir información adicional