CodeInigniter & DataMapper como frontend, administrador de django como backend, tablas de bases de datos inconsistentes

StackOverflow https://stackoverflow.com/questions/2517761

Pregunta

Creé una base de datos para un sitio que estoy haciendo usando Django como backend admin. Sin embargo, debido a que el servidor donde se aloja el sitio, no podrá admitir Python, me encuentro necesito hacer la parte delantera en PHP y, como tal, he decidido usar CodeInigniter junto con DataMapper para mapear los modelos/relación .

Sin embargo, DataMapper requiere que las tablas estén en un formato específico para que funcione, y Django mapea sus tablas de manera diferente, utilizando el nombre de la aplicación como prefijo en la tabla. He intentado usar los Vars prefix & Join_Prefix en DataMapper, pero aún no los asigna correctamente.

¿Alguien ha usado una combinación de esto? Y si es así, ¿cómo se ha solucionado el problema de los nombres de la tabla de DB que son inconsistentes? ¿Hay algo por ahí que pueda usar para que trabajen juntos?

---- Editar: Aclaración en el backend --- Permítanme aclarar: voy a ejecutar el administrador desde un subdominio que apunta a un servidor de Python Ready. Sin embargo, no puedo mover el nombre de dominio principal del servidor web de PHP solo debido a ciertas restricciones/contratos vinculantes en los que se metió en la compañía. Y no quiero usar Cloquek/Manking debido a los propósitos de SEO.

Estoy usando el administrador de Django porque estoy usando algunos paquetes para hacer un administrador bonito/funcional, como Grappelli para la plantilla de administración, junto con su editor para editar noticias, etc., también usando Photologue para administrar fotos/galerías. etc.

¿Fue útil?

Solución

Si su problema es simplemente hacer que Django use las mismas tablas que su otro software, use el db_column y db_table Parámetros en los modelos.

http://www.djangoproject.com/documentation/models/custom_columns/

Otros consejos

Dos soluciones aparentes:

  1. En lugar de piratear uno o ambos para que funcionen bien entre sí, emule el administrador de Django en el código PHP/Codeigniter. **
  2. Obtenga un servidor que admita Django. Haz el frontend en Django.

En cuanto al tiempo, cualquiera de esas soluciones será menos involucrada que tratar de hacer que dos marcos diferentes utilizan diferentes lenguajes de programación se combinen bien. No puedo imaginar el mantenimiento futuro requerido para garantizar la compatibilidad e interoperabilidad eterna.

Además, supongo diciendo:

Creé una base de datos para un sitio que estoy haciendo usando django como backend admin

Realmente quiere decir que modeló sus aplicaciones con Django, y que también tiene la intención de administrar la base de datos que ha resultado de este modelado en el administrador de Django. (En cuyo caso ya tiene su capa de modelos completa y debe intentar construir el resto del sitio en Django)

Si ese es el caso, entonces en sus modelos necesitará definir los nombres exactos de la columna (db_column) que DataMapper esperará, así como definir manualmente los nombres de las tabla (db_table), incluidas las tablas M2M.

También es posible que deba definir todas sus claves principales manualmente, si DM espera algo nombrado de manera diferente.

También:

Si el servidor no puede admitir Python, ¿Dónde vas a ejecutar tu backend?? Servidor diferente? ¿En la zona? Este plan simplemente no tiene mucho sentido.

** No sugeriría probar esto. Había estado tratando de hacer un backend de CI que realmente compartiera las mismas ideas que el administrador de Django, antes de saber sobre el administrador de Django. Y, por supuesto, una vez que descubrí Django, dejé caer el trabajo del CI de inmediato y continué con lo que he encontrado que es un marco mucho más sorprendente que es mucho más rápido de desarrollar.

Entonces, según entiendo, planeas usar Django solo por Django-Admin, y estás tratando de usar CI para el sitio real porque el servidor ejecuta PHP, ¿verdad?

Entonces, ¿por qué no usa el marco que genera algo como el administrador de Django pero que puede ejecutar en su servidor?

los Marco de Symfony tiene un muy bonito generador de administrador, en el espíritu de Django y es posible que pueda ejecutarlo en su servidor. Esto te salvaría de la pesadilla de mantenimiento que podría llegar más tarde como respondió @jonwd7

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top