2010-08-11 15 views
6

Tengo una aplicación Django existente con una implementación de modelo bastante típica respaldada por una base de datos. Mi tarea es cambiar este modelo para que, en lugar de obtener la información de una base de datos, ahora lo obtenga de un servicio (por ejemplo, a través de HTTP). Debido a que existe un código que ya hace uso de este modelo, sería bueno mantener la misma interfaz de modelo para que continúe comportándose como un modelo típico de Django.¿Cómo implementar modelos sin respaldo de base de datos en Django?

Esto plantea algunas de las preguntas:

  • ¿Es posible hacer esto sin tener que volver a escribir la interfaz desde cero para que se vea como interfaz de modelo de Django? (Esta pregunta de stackoverflow parece sugerir lo contrario: Django MVC pattern for non database driven models?)

  • ¿Sería un enfoque apropiado escribir un administrador personalizado para este modelo (o he entendido mal el papel del administrador)?

  • Debido a la naturaleza respaldada por el servicio del nuevo modelo, el almacenamiento en caché será mucho más importante que antes. ¿Es esto algo que debería implementarse a nivel de modelo?

Respuesta

4

Eche un vistazo a django-roa. Por el sonido de esto, podría ser exactamente lo que estás buscando.

+0

Esto es realmente limpio, y no lo había visto antes. Lamentablemente, el servicio en cuestión no es RESTful, y creo que necesitaré la capacidad de usar código personalizado para realizar el trabajo generalmente realizado por la base de datos. Aún así, donde uno tiene un servicio RESTful al que pueden conectar sus modelos, esto es bastante agradable. –

+0

Como el destino lo tendría, ya no necesito tener un modelo que no sea de base de datos en la vida real. Como consecuencia, esta es una respuesta mucho mejor a la pregunta que, de todos modos, hubiera estado preguntando. ¡Gracias! –

Cuestiones relacionadas