2009-03-24 16 views
13

Estaba pensando que django admin es una utilidad para proporcionar a los administradores de confianza del sitio, acceso completo al modelo de datos del sitio.Creando una aplicación web completa usando django admin

Sin embargo, después de revisar el administrador de django en detalle, entiendo que es un conjunto de vistas y plantillas muy poderoso que se puede usar para crear una aplicación completa.

¿Con qué frecuencia creas una aplicación completa solo con el administrador? ¿Es más fácil crear usando vistas que personalizar mucho el administrador?

¿Qué tal construir un prototipo usando admin. ¿Necesitamos construir un prototipo? La personalización del administrador no se puede volver a utilizar en la aplicación real.

Si quiero usar una parte del código de administrador en una aplicación real (con diferentes plantillas), ¿hay algún tipo de opción de andamio disponible?

+0

¿Cómo puedo usar las vistas y las plantillas de administración de django en mi aplicación? –

Respuesta

17

"El administrador no es su aplicación".

Si la personalización va más allá de lo trivial, escriba sus propias vistas.

En mi experiencia, dejo las páginas de administración internas relativamente intactas.En cambio, anulo la plantilla de índice de administrador, donde pongo enlaces a vistas escritas a medida cuando el usuario necesita hacer informes no triviales o manejar formularios.

0

En resumen:

Pruebe la parte de administración para sus necesidades. Modificar las vistas estándar. Si falta algo, siempre puedes desarrollar tu propia vista.

Para mí, no me puedo imaginar una aplicación completa (más grande que rolodex) basada solo en django-admin.

A.

9

he hecho algo así antes. Era un CMS para una universidad completamente implementada al extender el administrador de Django. Resultó que fue una mala decisión de diseño. Tuve que saltar a través de aros para hacer algunas cosas.

Realmente depende de cuáles son los requisitos para su aplicación. Si es necesario que haya muchos ajax o algún flujo de trabajo específico que extienda, el administrador no será lo correcto. Pero creo que el 60% de los casos se pueden cubrir ampliando el administrador.

También es excelente para construir prototipos.

EDITAR

OK, eso fue en los 0,96 días.

Hasta ahora he creado 2 sitios "grandes" que están en producción completamente encima del nuevo administrador. En su mayoría, se trata de administración de casos, ingreso de datos e informes, por lo que podrían ser incluidos en el flujo de trabajo del administrador. Pero no sin un gran esfuerzo para extender el sitio base, ModelAdmin, InlineModelAdmin, etc. La decisión de seguir así es que nos presionaron para hacerlo rápido. Pero en el primer caso también se ajustaba perfectamente a los requisitos. Ambos se ejecutan en una intranet en el sector gubernamental. Ambos hacen bien su trabajo. Uno con 200 tablas manejando decenas de miles de entradas. El otro maneja los pagos.

Entonces, sí, es cierto. El administrador no es tu aplicación. Sin embargo, es extensible, aunque gran parte no está documentado. Y se adapta a la mayoría de los flujos de trabajo enterpresey básicos. Por lo tanto, vale la pena considerarlo en un número limitado de escenarios.

3

La administración de Django es increíblemente flexible y se puede anular de múltiples maneras. Desafortunadamente, hay más de una manera de hacer la anulación y algunas de las técnicas no están muy bien documentadas.

La buena noticia es que la siguiente estrategia parece funcionar bien: Anular, personalizar y crear una subclase de la aplicación de administración hasta que todo empiece a sentirse un poco doloroso y en ese punto simplemente caer en sus propios puntos de vista donde sea necesario.

Hay algunos enlaces útiles en mi respuesta a this question

6

no estoy de acuerdo con la mayoría de las otras respuestas.

En pocas palabras, no hay coincidencia con lo que obtienes de forma gratuita con la aplicación de administración.

Su primera personalización del administrador será difícil, ya que enfrentará una curva de aprendizaje abrupta (tendrá que lidiar con plantillas, gerentes, administradores de modelos, probablemente use vistas de bases de datos, CSS y JS, algunas formas adicionales) y reglas de validación, etc ...). Pero una vez hecho esto, comenzarás a sentirte rey al inclinar el sistema de administración a tus necesidades. Creé una aplicación web compleja de inventario y contabilidad con entrada de datos, informes y sistema de permisos, todo basado únicamente en la interfaz de administración y el back-end.

+0

cualquier repositorio que sugiera tener algunos ejemplos? –