2011-09-12 8 views
8

Estoy construyendo un sitio web de revisión basado en Django donde los usuarios públicos crean todo el contenido en el sitio. Los usuarios crean reseñas para artículos determinados y también crean los artículos ellos mismos que serán revisados ​​(proporcionando una descripción y un breve resumen del artículo, junto con algunas etiquetas).¿Debo usar la función de administración de Django?

Mi pregunta es esta: ¿Debo utilizar las funciones de administración de Django para este sitio web (como por ejemplo, exponer los controles de administrador a los usuarios públicos)? ¿O debería seguir con las formas normales? No estoy muy familiarizado con el aspecto administrativo de Django, y hasta ahora solo he estado usando formularios para el sitio web, pero he visto a mucha gente hablar sobre las funciones administrativas de Django, y estoy empezando a preguntarme si debería usarlos

¡Gracias por cualquier comentario!

Respuesta

8

Quizás. Si la funcionalidad de administración cubre la mayor parte de lo que desea ofrecer, no hay ninguna razón por la que no deba usarla como punto de partida.

django.contrib.admin es una aplicación como cualquier otra, y proporciona básicamente una interfaz CRUD para sus modelos. El acceso se puede controlar a través de grupos/permisos, tal como lo haría para una aplicación que usted mismo redacta. Puede dar acceso completo a un modelo con una sola línea, pero obviamente tendrá que configurar correctamente cuando se abre a los demás.

Véase también mi pregunta Django AdminSite/ModelAdmin for end users? y otras preguntas similares Exposing django admin to users. Harmful? y How to make Django admin site accessed by non-staff user?

En cuanto a los argumentos sobre el "uso previsto" de la administración, tenga en cuenta la actualización de seguridad de Django a finales del año pasado: http://www.djangoproject.com/weblog/2010/dec/22/security/ con respecto a los parámetros de cadena de consulta en listas de objetos. Dicha actualización (cita: "un atacante con acceso al administrador [...]") es una clara indicación de que la implementación del sistema de permisos por parte del administrador se analiza constantemente.

+1

Enlaces informativos. ¡Gracias! –

3

No expongo la interfaz de administración a los usuarios normales. Puede usar el lado de autenticación y administración de usuarios (para sus propósitos), pero generalmente es una mejor práctica dar a los usuarios una forma separada de administrar sus objetos. Tampoco corres el riesgo de otorgar privilegios incorrectos a los usuarios (o permitirles que otorguen los propios).

Lea los documentos (https://docs.djangoproject.com/en/dev/ref/contrib/admin/) si desea una mejor visión general de lo que puede hacer.

3

No. El administrador de django no está destinado a ningún usuario final.

La función de administración de django está destinada a ayudar al desarrollador del sitio web, y eso es todo. Incluso el uso por parte de los administradores del sitio está contraindicado, aunque en la práctica la mayoría de los sitios pequeños se salgan con la suya ya que solo están hablando de algunas personas que pueden llamar al desarrollador personalmente si se meten en problemas.

Para sus propósitos, los elementos de revisión y el flujo de trabajo en la creación de los elementos es una parte crítica de su conjunto de características de la aplicación. El administrador le dará ideas, pero sería un error intentar crear su aplicación.

+1

Django admin está destinado a los administradores del sitio. Se debe usar como un backend de sitio web normal, donde los administradores del sitio pueden agregar y moderar el sitio web. En ninguna parte se encuentra la documentación que dice que está destinada solo para "desarrolladores web" – MortalViews

Cuestiones relacionadas