Correcto uso de la app admin de django – python django

Pregunta:


Cual es el correcto uso que se le debe dar a la página de administración (django.contrib.admin) en una aplicación en producción. explico mi pregunta.

El sitio de administración permite gestionar los modelos creado de una forma bastante simple y abstracta por lo que para alguien nuevo es bastante seductor crear un sistema *( no se por ejemplo un sistema de gestión médica )* crear modelos de doctor, citas, enfermeras etc, etc, etc. y al terminar registrar todos estos en el “admin site” y hacer que el uso del sistema sea mediante el. y que todos los usuarios ( secretarias, doctores etc, etc, etc ) entren al **admin site** con los permisos específicos para editar ciertos modelos.

Ahora en la documentación dice:

One of the most powerful parts of Django is the automatic admin interface. It reads metadata from your models to provide a quick, model-centric interface where trusted users can manage content on your site. The admin’s recommended use is limited to an organization’s internal management tool. It’s not intended for building your entire front end around.

Lo que deja claro que no debe ser usada como solución frontend para los clientes. pero Lo que quiero aclarar es como seria la manera correcta de para un sistema ya en producción.

Cual sería su lugar en la arquitectura del sistema y su principal modo de uso.

Imaginamos que existe un completo frontend para mi sistema.

Preguntado por: Gytree

Según mi experiencia, el admin de Django está enfocado en los administradores directos, te pongo el siguiente ejemplo:

Una web de noticias como esta donde los editores son miembros selectos de la web y los usuarios finales son los que consumen el contenido, aqui el admin de Django calza perfectamente donde podemos resaltar los siguientes roles:

  • El superadmin que crea los usuarios editores y edita los permisos.
  • Los editores que suben el contenido
  • Los usuarios finales (registrados o anónimos) que consumen el contenido

Estos últimos no tendrían acceso al administrador de django.

Ahora imagina que cualquier persona puede registrarse y subir noticias, en ese caso el administrador de Django ya no seria buena idea, entonces te tocaría crear una aplicación aparte para este propósito para mejorar la experiencia de usuario (ya que es para el usuario del común) y quedaría de esta forma:

  • El superadmin (Admin de Django)
  • Los usuarios redactores (App propia)

En general, el admin de django en producción es mas para tareas administrativas(superusuarios) en donde los usuarios que ingresen tengan un mínimo de conocimiento de las reglas del negocio. Aunque el admin de Django puede parecerte sencillo y es muy personalizable, creeme que hay un punto donde no puedes editarlo mas (sobre todo cuando quieres filtrar información por roles de usuario) se vuelve inmanejable, es mas factible crear una aplicación nueva para esto y de paso hacer mejores en el diseño o incluso hacer una single page application usando angular o cualquier libreria de este tipo.

En el caso especifico de tu ejemplo, usuaria el admin de django para el dueño del negocio, el que registra usuarios administradores que agregar medicos, enfermeras, etc.. y una aplicación principal donde tenga los modulos de cada uno de esos usuarios y la gestion de citas.

Espero haberte ayudado.
Saludos.

Fuente

Related Posts:

Python editor extension for laravel-admin
...
DreamFactory(tm) Scripting Components
...
Enhance PHP sprintf with Python-style named parameters
...
Python string slices in PHP
...
Non-standard PHP library (NSPL) – functional primitives toolbox and more
...
PHP client for Celery task queue
...
File Upload widget for jQuery.
...
Con Django ‘str’ object is not callable en class based-views – python django
Pregunta: Tengo este problema cuando quiero acceder a una URL que me dice que es str object is no callable seguramente tengo algo mal en ...
Abrir páginas web en python 3.5.X en la misma ventana – python python-3.x webbrowser
Pregunta: Buenas, he hecho un script para lanzar varias páginas web en una sola ventana, es decir, cada url en una pestaña sin embargo, firefox ...
Publicar proyecto en Python 3.5 con heroku – python django python-3.x
Pregunta: Hola tengo un proyecto hecho con Python 3.5 y Django 1.10 y quisiera publicarlo en HEROKU pero veo que solo soporta Python 2.7, ¿alguien ...
¿Porqué me sale error csrf verification failed? – django
Pregunta: Esta es mi vista: def validarcelda(request): error = '' success = False if request.method == 'POST': ...
Cambiar un valor string a un entero – python django ajax
Pregunta: Con el siguiente código quiero hacer una validación donde valide si un dato que voy a ingresar es mayor a otro que ya tengo, ...
Como correr Django en python 3.5 – python python-3.x django
Pregunta: estoy trabajando con Django en python 2.7, para eso hago uso de virtualenv, pip, el conector de mysql, etc. Tengo predefinido python 3.5 en ...
Insertar salto de línea escribiendo en un txt (Python) – python tkinter
Pregunta: Como puedo insertar un salto de línea : archi.write(svnombreRP.get()) Lo hago de la siguientes maneras y no me funciona: No funciona archi.write(svnombreRP.get()'/n') No funciona archi.write(svnombreRP.get()/n) No funciona, me imprime la variable ...
Python elemento IN lista de strings – python python-3.x
Pregunta: tengo la siguiente lista y string: lis = palabra = 'ejemplo' Pero cuando hago palabra in lis Me retorna False. ¿A qué ...

Add a Comment

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *