Foros del Web » Programando para Internet » Python »

[SOLUCIONADO] Django: realizar busquedas combinando dos campos de un mismo objeto

Estas en el tema de Django: realizar busquedas combinando dos campos de un mismo objeto en el foro de Python en Foros del Web. ¡Hola a todos! ¿Es posible realizar un filtro en Django, en el cual el valor a encontrar sea igual a la unión de dos o ...
  #1 (permalink)  
Antiguo 17/09/2016, 12:50
Avatar de wilmermorel  
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 13 años, 4 meses
Puntos: 2
Pregunta Django: realizar busquedas combinando dos campos de un mismo objeto

¡Hola a todos! ¿Es posible realizar un filtro en Django, en el cual el valor a encontrar sea igual a la unión de dos o más campos?

Ejemplo:

Suponiendo que tengo un modelo denominado Cliente, el cual posee dos CharField (nombre y apellido). Yo quiero realizar una búsqueda en la cual se obtengan los items que, sumando ambos campos, de como resultado el valor a buscar:

Código Python:
Ver original
  1. valor = "Daniel Sosa"
  2. resultado = Cliente.objects.filter( nombre + apellido = valor )


Espero haber sido claro en el ejemplo.
Gracias de antemano por su valioso tiempo y ayuda.
  #2 (permalink)  
Antiguo 19/09/2016, 13:26
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: Django: realizar busquedas combinando dos campos de un mismo objeto

Nop, lo que te puede servir es guardar el nombre completo en otro campo y luego buscar en ese.

Saludos!
__________________
Grupo Telegram Docker en Español
  #3 (permalink)  
Antiguo 20/09/2016, 21:20
Avatar de wilmermorel  
Fecha de Ingreso: agosto-2011
Ubicación: Santo Domingo
Mensajes: 30
Antigüedad: 13 años, 4 meses
Puntos: 2
Respuesta: Django: realizar busquedas combinando dos campos de un mismo objeto

Gracias hermano. Lo hice como recomendaste y añadí esto al form:

Código Python:
Ver original
  1. def CleanNombres(self):
  2.         """
  3.        Valida los nombres, apellidos y apodos del cliente.
  4.        """
  5.         nombres = self.cleaned_data.get("nombres", "").title()
  6.         primer_apellido = self.cleaned_data.get("primer_apellido", "").title()
  7.         segundo_apellido = self.cleaned_data.get("segundo_apellido", "").title()
  8.         apodos = self.cleaned_data.get("apodos", "").title()
  9.         # Se establecen los datos ya validados.
  10.         self.cleaned_data["nombres"] = nombres
  11.         self.cleaned_data["primer_apellido"] = primer_apellido
  12.         self.cleaned_data["segundo_apellido"] = segundo_apellido
  13.         self.cleaned_data["apodos"] = apodos
  14.         # Este campo no está disponible para el usuario, el sistema lo maneja
  15.         # automáticamente, ya que su única función es tener como valor el nombre
  16.         # completo del cliente para fines de busquedas.
  17.         self.cleaned_data["nombre_completo"] = "%s %s %s" % (nombres, primer_apellido, segundo_apellido)

Gracias!

Etiquetas: bases-de-datos, busquedas, django
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 20:00.