2011-06-30 31 views
7

Quiero seleccionar datos de una tabla de base de datos que no es parte de mi proyecto Django. Agregué la información de conexión de la base de datos al archivo de configuración y puedo hacer consultas en sql sin procesar para extraer los datos. Sin embargo, me gustaría crear un modelo para esa tabla y poder acceder a los datos como lo haría con cualquier otro modelo de datos de Django.Django: Obtener datos de diferentes bases de datos

¿Esto es posible? Puedo encontrar cualquier documentación sobre eso.

Respuesta

10

La página Django: Multiple Databases contiene buena información sobre este tema. Después de haber configurado sus bases de datos en settings.py, puede usar .using() para especificar la base de datos que desea consultar.

Ejemplos de la documentación:

>>> # This will run on the 'default' database. 
>>> Author.objects.all() 

>>> # So will this. 
>>> Author.objects.using('default').all() 

>>> # This will run on the 'other' database. 
>>> Author.objects.using('other').all() 
+0

Autor Cuál es entonces? El modelo de autor no está definido en models.py. – user1881957

+1

'Autor' en este caso es un marcador de posición para cualquier objeto que desee consultar. Simplemente copié el ejemplo de la documentación en la página vinculada. Puedes usar cualquier objeto. –

+0

¿Puede decirme cómo ejecutar consultas crudas como esta? Ejemplo: Author.objects.using ('other'). Raw ("Select * from table1") –

3

seguro, sólo tiene que utilizar

SomeObject.objects.using('database_name').all() 

hacer sus consultas

Cuestiones relacionadas