Correct use of the django admin app [closed]


What is the correct use that should be given to the administration page (django.contrib.admin) in a production application . I explain my question.

The administration site allows you to manage the models created in a fairly simple and abstract way so for someone new it is quite seductive to create a system * (do not for example a medical management system) * create models of doctor, appointments , nurses etc, etc, etc. and at the end register all these in the "admin site" and make the use of the system through the. and that all users (secretaries, doctors etc, etc, etc) enter the ** admin site ** with specific permissions to edit certain models.

Now in the documentation it says:


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.

What makes it clear that it should not be used as a front-end solution for customers. But what I want to clarify is how would be the correct way for a system already in production.

What would be its place in the architecture of the system and its main mode of use.

We imagine that there is a complete frontend for my system.     
asked by Gytree 15.10.2016 в 02:12

1 answer


According to my experience, the Django admin is focused on direct administrators, I give you the following example:

A news website such as this where publishers are selected members of the web and end users are those who consume the content, Here the Django admin fits perfectly where we can highlight the following roles:

  • The superadmin created by user editors and edit permissions.
  • The editors that upload the content
  • End users (registered or anonymous) who consume the content

The latter would not have access to the django administrator.

Now imagine that anyone can register and upload news, in that case the administrator of Django would not be a good idea, then you would have to create a separate application for this purpose to improve the user experience (since it is for the user from the common) and would look like this:

  • The superadmin (Admin of Django)
  • Editors users (own App)

In general, the admin of django in production is more for administrative tasks (superusuarios) where the users that enter have a minimum of knowledge of the rules of the business. Although the Django admin may seem simple and is very customizable, believe me there is a point where you can not edit it anymore (especially when you want to filter information by user roles) it becomes unmanageable, it is more feasible to create a new application for this and step to do better in the design or even make a single page application using angular or any library of this type.

In the specific case of your example, user the admin of django for the business owner, the one that registers administrator users that add doctors, nurses, etc ... and a main application where he has the modules of each one of those users and the management of appointments.

I hope I helped you. Greetings.

answered by 15.10.2016 в 05:03