Foros del Web » Programando para Internet » Python »

Django, 2 Databases 1 Select

Estas en el tema de Django, 2 Databases 1 Select en el foro de Python en Foros del Web. Buenas estoy armando toda una página mia en PHP toda en Django y necesito hacer un select a otra database para traer los ultimos posts, ...
  #1 (permalink)  
Antiguo 31/07/2012, 08:31
 
Fecha de Ingreso: octubre-2010
Mensajes: 73
Antigüedad: 14 años, 1 mes
Puntos: 0
Pregunta Django, 2 Databases 1 Select

Buenas estoy armando toda una página mia en PHP toda en Django y necesito hacer un select a otra database para traer los ultimos posts, esto lo hago en un div aparte, lo armo con ajax jquery y un boton para poder traer los ultimos posts sin recargar la pagina.

Ahora siguiendo un poco la documentacion de django sería maso menos así:

settings.py ejemplo:
Código:
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'basededatos_default',                      # Or path to database file if using sqlite3.
        'USER': 'user',                      # Not used with sqlite3.
        'PASSWORD': 'una_contrasena',           # Not used with sqlite3.
        'HOST': 'el_host',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }, 
    
    'foro': {
        'ENGINE': 'django.db.backends.mysql', # Add 'postgresql_psycopg2', 'mysql', 'sqlite3' or 'oracle'.
        'NAME': 'basededatos_delforo',                      # Or path to database file if using sqlite3.
        'USER': 'un_user',                      # Not used with sqlite3.
        'PASSWORD': 'una_contrasena',           # Not used with sqlite3.
        'HOST': 'el_host',                      # Set to empty string for localhost. Not used with sqlite3.
        'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
    }
}
Y con:
Código:
def ultimos_posts(request):
    base_url_includes = base_web_url
    ultimos_posts = smf_messages.objects.using('foro').all()
    
    return render_to_response('diagrama/ultimos_posts_modulo.html', 
                          {'base_url_includes':base_url_includes, 
                            'ultimos_posts':ultimos_posts
                                                      
                                       },context_instance=RequestContext(request))
ultimos_posts = smf_messages.objects.using('foro').all()

.using('foro') Eso apuntaria a que database.

Ahora el dilema es tengo que armar un modelo para que lea la tabla?.
Tengo alguna forma en la vista para que lo lea directamente?

la tabla que yo busco en la base de datos del foro es: smf_messages

pero me busca la tabla base_aplicacion_smf_messages

Leí la documentacion pero realmente me mareo.



Si alguien sabe se le agradece.-
__________________
Página Principal: http://www.almightysystem.com.ar/
  #2 (permalink)  
Antiguo 31/07/2012, 09:58
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: Django, 2 Databases 1 Select

Cita:
Iniciado por Onsterion Ver Mensaje
Buenas estoy armando toda una página mia en PHP toda en Django
Con todo respeto, pero esto me saco un wtf.

Cita:
Iniciado por Onsterion Ver Mensaje
Ahora el dilema es tengo que armar un modelo para que lea la tabla?.
Si.

Cita:
Iniciado por Onsterion Ver Mensaje
Tengo alguna forma en la vista para que lo lea directamente?
¿Podrías elaborar mejor esta pregunta?

Cita:
Iniciado por Onsterion Ver Mensaje
la tabla que yo busco en la base de datos del foro es: smf_messages

pero me busca la tabla base_aplicacion_smf_messages

Leí la documentacion pero realmente me mareo.
Es por que tu aplicación se llama, base_aplicacion y cuando Django crea las tablas o las busca, por default lo hace con el nombre de tu app junto con el nombre del modelo. A menos que le digas explicitamente cual es el nombre de la tabla. Como viene en la documentación.
  #3 (permalink)  
Antiguo 31/07/2012, 10:02
Avatar de Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 8 meses
Puntos: 1329
Respuesta: Django, 2 Databases 1 Select

Por lo que veo quieres acceder a una base de datos que ya tiene datos dentro (de un foro SMF en PHP, por lo que leo), lo que puedes hacer es ejecutar el SQL directamente: https://docs.djangoproject.com/en/de...m-sql-directly

Saludos
__________________
Grupo Telegram Docker en Español
  #4 (permalink)  
Antiguo 31/07/2012, 10:33
 
Fecha de Ingreso: octubre-2010
Mensajes: 73
Antigüedad: 14 años, 1 mes
Puntos: 0
De acuerdo Respuesta: Django, 2 Databases 1 Select

Cita:
Iniciado por razpeitia Ver Mensaje
Con todo respeto, pero esto me saco un wtf.
Claro una pagina hecha en PHP, hacerla toda desde 0 con todas las funciones de la pagina pero todo hecho desde 0 en Django.

Cita:
Iniciado por razpeitia Ver Mensaje
Es por que tu aplicación se llama, base_aplicacion y cuando Django crea las tablas o las busca, por default lo hace con el nombre de tu app junto con el nombre del modelo. A menos que le digas explicitamente cual es el nombre de la tabla. Como viene en la documentación.
Me sirvió de 10

Código:
class Meta:
        db_table = 'smf_messages'
__________________
Página Principal: http://www.almightysystem.com.ar/

Etiquetas: databases, django, select
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 13:21.