Ver Mensaje Individual
  #2 (permalink)  
Antiguo 28/11/2013, 13:38
Avatar de razpeitia
razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 9 meses
Puntos: 1360
Respuesta: Django error in objects.filter: too many values to unpack

Código Python:
Ver original
  1. def por_marcas(marca_list):
  2.     return reduce(lambda x, y: Q(marca=x)|Q(marca=y), marca_list)
  3.  
  4. marcas = ["samsung", "samsung2"]
  5. productos = Producto.objects.filter(por_marcas(marcas))
No, no puedes hacerlo así como así (me refiero usando un solo string)

Así debería de funcionar. Podrías modificar la función para que filtre por atributos arbitrarios y hacer algo cuando le manden un solo elemento.

O si lo prefieres.
Código Python:
Ver original
  1. from operator import __or__ as OR
  2. # ...
  3. marcas = [Q(marca="samsung"), Q(marca="samsung2")]
  4. productos = Producto.objects.filter(reduce(marcas, OR))