Foros del Web » Programando para Internet » Python »

Evitar que Django cachee JSON

Estas en el tema de Evitar que Django cachee JSON en el foro de Python en Foros del Web. Buenas, tengo un gran problema con el cacheo que hace Django cuando uso HttpResponse() y envio un JSON Estoy tratando de usar AJAX para registrar ...
  #1 (permalink)  
Antiguo 01/07/2012, 20:16
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Evitar que Django cachee JSON

Buenas, tengo un gran problema con el cacheo que hace Django cuando uso HttpResponse() y envio un JSON

Estoy tratando de usar AJAX para registrar un usuario pero las validaciones quedan cacheadas y me dice que el correo ya existe cuando esto no es cierto.

Ya intente @never_cache y tambien cachear manualmente cambiando la "key" del cache para refrescar, pero ninguno dio resultado. La unica forma de evitar el cacheo es cambiando el contenido de mi archivo python, por ejemplo agregando un salto de linea o algun caracter, la consola revalida modelos y limpia todo el cache.

Estoy trabajando con el servidor de pruebas de django, los parametros los he pasado por GET y POST pero nada funciona

Espero me puedan dar una mano con eso

Gracias
__________________
Juegos
Juegos iphone
  #2 (permalink)  
Antiguo 02/07/2012, 09:51
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Evitar que Django cachee JSON

Ciertamente es extraño, por que las peticiones POST no se cachean por default.
  #3 (permalink)  
Antiguo 02/07/2012, 15:02
Avatar de minkweb  
Fecha de Ingreso: septiembre-2005
Mensajes: 443
Antigüedad: 19 años, 2 meses
Puntos: 14
Respuesta: Evitar que Django cachee JSON

Creo que era error mio, la respuesta la estaba armando con una clase que se llama Response, pero no tenia metodo __init__(), lo coloqué y funciono perfectamente.

Esta era la clase, luego de colocarle el metodo init funciono


Código Python:
Ver original
  1. class Response:
  2.  
  3. from django.utils import simplejson
  4.     """
  5.     Class util for manage a response standar object
  6.     Can add errors, messages, ask for status and return object in different formats
  7.     """
  8.  
  9.     def is_error(self):
  10.         """
  11.         Return error status
  12.         """
  13.         if len(self.error) > 0:
  14.             return True
  15.         else:
  16.             return False
  17.  
  18.     def is_success(self):
  19.         """
  20.         Return success status
  21.         """
  22.         if self.is_error() == False:
  23.             return True
  24.         else:
  25.             return True
  26.  
  27.     def get_status(self):
  28.         """
  29.         Return general status
  30.         """
  31.         if self.is_error() == True:
  32.             return 'error'
  33.         else:
  34.             return 'success'
  35.  
  36.     def add_error(self, key, value):
  37.         """
  38.         Add new error to the object
  39.         """
  40.         self.error[key] = value
  41.            
  42.     def add_message(self, key, value):
  43.         """
  44.         Add new message to the object
  45.         """
  46.         self.message[key] = value
  47.  
  48.     def read_form(self, errors):
  49.         """
  50.         Read data from Django Form object and add errors
  51.         """
  52.         for key, value in errors.items():
  53.             self.add_error(key, value)
  54.  
  55.     def result(self, format='json'):
  56.         """
  57.         Return all object data in specific format
  58.         """
  59.         resp = {
  60.             'status': self.get_status(),
  61.             'error': self.error,
  62.             'message':self.message,
  63.         }
  64.         if format == 'json':
  65.             return simplejson.dumps(resp)

Es posible que al no tener metodo init no generaba una nueva instancia de la clase y por eso parecia cache?
__________________
Juegos
Juegos iphone

Etiquetas: ajax, cache, django, json
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:59.