Foros del Web » Programando para Internet » Python »

Objeto en sesión

Estas en el tema de Objeto en sesión en el foro de Python en Foros del Web. Hola, verán estoy realizando un ejercicio de la Universidad en django, el ejercicio consiste en un carrito de compras, pero no se como hacer para ...
  #1 (permalink)  
Antiguo 12/05/2014, 22:13
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Objeto en sesión

Hola,
verán estoy realizando un ejercicio de la Universidad en django, el ejercicio consiste en un carrito de compras, pero no se como hacer para que el objeto carrito de compras del usuario (visitante o registrado), había pensado que el objeto viaje en el request pero me sale un error de que el objeto no es serializable.
Alguna buena idea para que tanto usuarios visitantes y registrados puedan usar el carrito?
Gracias
__________________
"I need metal in my life, just like an eagle needs to fly..."
  #2 (permalink)  
Antiguo 13/05/2014, 10:03
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Objeto en sesión

Sera que te sirve esto ?

http://stackoverflow.com/questions/3...n-serializable

---
Seria ver que objeto estas tratando de serializar y como lo haces ...
__________________
Salu2!
  #3 (permalink)  
Antiguo 13/05/2014, 12:59
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Objeto en sesión

Cita:
Iniciado por Italico76 Ver Mensaje
Sera que te sirve esto ?

http://stackoverflow.com/questions/3...n-serializable

---
Seria ver que objeto estas tratando de serializar y como lo haces ...
Hola, Italico76
Muchas gracias por tu respuesta, crees que sea una buena idea mantener el objeto carro de compras en la sesión?
__________________
"I need metal in my life, just like an eagle needs to fly..."
  #4 (permalink)  
Antiguo 13/05/2014, 13:05
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Objeto en sesión

Cita:
Iniciado por Kristhoff Ver Mensaje
Hola, Italico76
Muchas gracias por tu respuesta, crees que sea una buena idea mantener el objeto carro de compras en la sesión?
Tu podrias mostrarle en algun div (generalemente arriba a la derecha) todo el tiempo los items en su carrito pero el usuario va cambiando de paginas.......asi que esa informacion debes tenerla accesible siempre desde tu template.

No creo tenga sentido andar pasando esa informacion por GET entre paginas (agregando &item1=...&item2=... etc)

De minima, en las tiendas siempre se muestra si el carrito esta lleno o no...y estas en las mismas.. asi sea un bit de informacion necesitas persistirlo
__________________
Salu2!
  #5 (permalink)  
Antiguo 13/05/2014, 14:11
Avatar de Kristhoff  
Fecha de Ingreso: abril-2009
Ubicación: Popayán - Cauca
Mensajes: 550
Antigüedad: 15 años
Puntos: 12
Respuesta: Objeto en sesión

Cita:
Iniciado por Italico76 Ver Mensaje
Tu podrias mostrarle en algun div (generalemente arriba a la derecha) todo el tiempo los items en su carrito pero el usuario va cambiando de paginas.......asi que esa informacion debes tenerla accesible siempre desde tu template.

No creo tenga sentido andar pasando esa informacion por GET entre paginas (agregando &item1=...&item2=... etc)

De minima, en las tiendas siempre se muestra si el carrito esta lleno o no...y estas en las mismas.. asi sea un bit de informacion necesitas persistirlo
Hola, no he logrado serializar el objeto de mi modelo, alguna otra idea para asignarle un carro de compras a un usuario no registrado? de preferencia sin usar plugins para django.
__________________
"I need metal in my life, just like an eagle needs to fly..."
  #6 (permalink)  
Antiguo 13/05/2014, 17:35
Avatar de Italico76  
Fecha de Ingreso: abril-2007
Mensajes: 3.303
Antigüedad: 17 años
Puntos: 292
Respuesta: Objeto en sesión

Compa: ahorita no estoy usando Django pero le muestro lo facil que es serializar cualquier objeto (sea de clase modelo de Django o de lo que Ud quiera, es igual)

Código Python:
Ver original
  1. import pickle
  2. import pprint
  3.  
  4. class BankAccount():
  5.  
  6.     # constructor
  7.     def __init__(self, titular, initial_balance=0):
  8.         self.balance = initial_balance
  9.         self.titular = titular
  10.        
  11.     def deposit(self, amount):
  12.         self.balance += amount
  13.        
  14.     def withdraw(self, amount):
  15.         self.balance -= amount
  16.        
  17.     def overdrawn(self):
  18.         return self.balance < 0
  19.  
  20. # creo objeto
  21. my_account = BankAccount('Jorge Acosta',15)
  22.  
  23. # serializacion
  24. serializado = pickle.dumps(my_account)
  25.  
  26. # imprimo serializado
  27. pprint.pprint(serializado)

En el serializado puede ver que se lee "Jorge Acosta" que es un dato que forma parte del objeto ya serializado:

Cita:
b'\x80\x03c__main__\nBankAccount\nq\x00)\x81q\x01} q\x02(X\x07\x00\x00\x00titularq\x03X\x0c\x00\x00\x 00Jorge Acostaq\x04X\x07\x00\x00\x00balanceq\x05K\x0fub.'
El serializado es siempre un string....asi que se puede almacenar en una base de datos como un campo o se puede incluir en una variable de session como imagino Ud tambien sabe.

Necesita incluir el modulo 'pickle' para tal fin
__________________
Salu2!

Etiquetas: django, ecommerce, session
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 15:06.