Ver Mensaje Individual
  #3 (permalink)  
Antiguo 15/06/2012, 13:25
Avatar de diegoug
diegoug
 
Fecha de Ingreso: mayo-2011
Ubicación: Colombia
Mensajes: 52
Antigüedad: 13 años
Puntos: 1
Pregunta Respuesta: Como encadeno una búsqueda en dos bases de datos?

Bueno para responder las preguntas dejo claro que este un ejemplo minimalista de lo que es el codigo completo que si lo coloco todo es mucho y solo podria colocar partes, es por eso que hice fue un ejemplo de lo que es:

1. No: son 4 modelos.

2. no son los nombres como ya lo aclare

3. UserProfile tiene muchas relaciones a Modelo2, este tiene una relacion unica a el Modelo1 que tiene un solo custom_id y OtroModelo es algo mas complicado: tiene muchos custom_id diferentes con dato diferentes, pero un custom_id se puede repetir en la lista, no estan ordenado y pueden llegar de un momento a otro.

Es por eso que consigo todo los custom_id del Modelo1 de cada usuario usando este codigo:
Código:
custom = Modelo1.objects.filter(modelo2__userprofile__user__username=usuario)
para luego buscar esos custom_id en OtroModelo y pasarlos todos a la plantilla.

Intente usando:
Código:
for elemento in custom:
    dato = OtroModelo.objects.filter(custom_id=elemento.custom_id).order_by("-id")[0]
    cadena = [0]
    cadena.append(datos)
pero como dije antes, solo me guarda un dato, no todos lo que me muestra en la terminal python.

Nota: le agregue (.order_by("-id")[0]) para que solo mostrara el ultimo dato ingresado a OtroModelo de ese custom_id.

4. No entiendo

5. No entiendo

6. eso esta intentando pero el for solo guardo un dato en la lista que cree "datos" no me guarda todos.

7. es por el ejemplo nada mas

8. es ejemplo

9. si y este es un caso especial de una relación basada en la lógica de no relacionarlos.

10. la pregunta esta bien como ejemplo, mis modelos son diferentes.

No se si me hice entender, el problema es algo que me deja un poco perplejo, como lo harías tu? para hacer que estas dos tablas se relacionen basado en un custom_id que genera el sistema, un ejemplo seria 12976743213, este custom_id u otros se le asigna a un usuario y se busca en OtroModelo todas las entradas relacionadas a este custom_id.

Gracias.

Cita:
Iniciado por razpeitia Ver Mensaje
No se por donde empezar, esta pregunta esta tan mal redactada que es casi imposible entenderla (ya no digo responder).

1.- Esos son modelos, que a su vez se convierten una o mas tablas y que residen en una base de datos. (Por lo menos así como los muestras)

2.- El nombre de los modelos, espero sinceramente que no sean esos, no son descriptivos.

3.- Lo que quieres hacer es un join y lo podrías hacer fácilmente si tus tablas estuvieran bien relacionadas.

4.- En resumidas cuentas quieres llegar de OtroModelo a Modelo1, pero OtroModelo, no esta relacionado con nadie.

5.- Puedes utilizar __in para no tener que hacer el for.

6.- Se ve que no dominas bien python (o cualquier otro lenguaje). Por que veo que cometes un error muy pero muy básico. Claro que datos te va solamente el ultimo resultado, si quieres todos los resultados tienes que almacenarlos en una lista o en alguna otra estructura de datos.

7.- También el nombre de las variables son pésimas, data o dato(s) son los peores nombre de variables por que no dicen que datos son.

8.- Hay campos en el query que no están en los modelos, lo que me deja mas intrigado de lo que ya estaba. Por ejemplo no tiene sentido Modelo2 a menos que tenga otros campos.

9.- ¿Sabes la diferencia entre ForeignKey + UniqueIndex y la relación OneToOne?

10.- Te recomiendo estructurar bien tu pregunta pero mas importante estructurar mejor tus modelos.
__________________
_________________________
Diego Alonso Uribe Gamez
Twitter: @DiegoUG

Última edición por diegoug; 15/06/2012 a las 13:41 Razón: code