[PYTHON] N'attendez pas trop du site d'administration de Django

Calendrier de l'Avent Django 2016 Ceci est l'article du 12ème jour.

introduction

L'une des fonctionnalités de Django, un framework Web de Python, est que le site d'administration est divin.

管理サイトの一覧画面

L'écran de liste et l'écran d'enregistrement / d'édition avec les filtres ci-dessus, la recherche de texte, le tri, la pagination, etc. peuvent être réalisés avec seulement quelques lignes de code déclaratif comme indiqué ci-dessous.

python


@admin.register(Question)
class QuestionAdmin(admin.ModelAdmin):

    list_display = ('question_text', 'pub_date', 'was_published_recently')

    list_filter = ['pub_date']

    search_fields = ['question_text']

Cela vous fait penser qu'il est très facile de créer une application Web, mais ne vous attendez pas à trop car il existe diverses restrictions sur le site de gestion.

Le site de gestion est à usage limité

Tout d'abord, le site de gestion est conçu comme un site pour les administrateurs comme son nom l'indique. L'administrateur ici est une personne dite d'âge moyen telle qu'un administrateur système ou un opérateur de service.

Le site de gestion fournit un écran de liste / d'inscription / d'édition pour chaque modèle, mais c'est une fonction pour les administrateurs et n'est pas ouverte aux utilisateurs généraux.

Si un utilisateur général a besoin d'un écran pour visualiser / mettre à jour les données, il doit être créé sur un écran normal (ci-après dénommé site général) au lieu du site de gestion.

Par exemple, envisagez de créer une application Web qui vous permet d'afficher et d'enregistrer des articles. Si l'opérateur pré-enregistre la catégorie pour classer les articles, celle-ci peut être créée sur le site de gestion. Cependant, l'écran de visualisation / d'inscription des articles utilisé par les utilisateurs généraux sera créé comme un site général.

Voici quelques exemples de cas d'utilisation pour chaque site.

--Site général

La configuration d'écran de base est fixe

L'écran principal du site de gestion se compose du menu supérieur et de l'écran liste / enregistrement / édition de chaque modèle.

Le menu du haut est regroupé par l'application (celle créée par startapp) et se compose de liens vers le modèle.

Site_administration___Django_site_admin.png

Vous pouvez ajouter des actions personnalisées (écrans) à l'écran du modèle, mais vous ne pouvez pas modifier de manière significative la configuration de l'écran d'origine.

Les fonctions de gestion du site ne peuvent pas être intégrées aux sites généraux

Les fonctions pratiques suivantes sont préinstallées sur l'écran de la liste des sites de gestion.

--Pagination --Trier

Ces fonctionnalités seront certainement également nécessaires sur les sites réguliers. Cependant, malheureusement, les fonctions du site de gestion ne peuvent pas être détournées vers des sites généraux. Vous devez le faire vous-même.

Les vues basées sur les classes sont faciles à implémenter car elles fournissent une aide à la mise en œuvre de filtres de tri de pagination en dehors de la fonctionnalité du site d'administration, mais néanmoins, aucun modèle n'est disponible, vous devrez donc les écrire vous-même.

Il peut être difficile ou impossible de faire plus que prévu de personnalisation

Sur le site d'administration, une personnalisation simple peut être réalisée avec une seule ligne de code dans la classe Admin. Les options disponibles dans la classe Admin sont ici (https://docs.djangoproject.com/en/1.10/ref/contrib/admin/#modeladmin-options).

Les personnalisations autres que celles décrites ici remplaceront les méthodes de la classe Admin. Cependant, par rapport aux classes View pour les sites généraux, de nombreuses parties ne sont pas conçues pour être étendues. Il existe également des méthodes monolithiques avec un nombre considérable de lignes et de parties qui appellent des fonctions privées dans le module, et dans certains cas, le dépassement est assez difficile.

finalement

Comme j'ai beaucoup écrit, le site de gestion est un outil très puissant pour les administrateurs. Il n'y a aucune raison de ne pas l'utiliser.

Les avantages de l'utilisation des outils de gestion

Etc.

Veuillez comprendre l'utilisation et les restrictions de l'outil de gestion, et suivre correctement le dosage et l'utilisation.

Recommended Posts

N'attendez pas trop du site d'administration de Django
Une histoire sur la volonté de modifier un peu le site d'administration de Django