Maison >développement back-end >Tutoriel Python >Comment désactiver l'édition administrateur dans le panneau d'administration Django
Panneau d'administration Django: une approche en lecture seule pour la gestion des données
Le panneau d'administration Django propose une interface conviviale pour gérer les modèles, les données et les utilisateurs. Ses capacités de recherche et de filtrage intégrées sont incroyablement pratiques. Cependant, il est parfois crucial de restreindre l'accès à l'édition à des modèles ou des champs spécifiques. Cela est particulièrement vrai lorsque l'intégrité des données doit être maintenue, empêchant des modifications accidentelles ou lorsque le panneau est uniquement pour la visualisation des données.
Récemment, un client a besoin d'une solution pour afficher, filtrer et paginer des données grattées à partir d'un site Web externe - en particulier, le suivi de nouvelles listes de propriétés. Django a fourni une solution élégante, permettant la gestion des données sans avoir besoin d'une création de page personnalisée.
Voici des captures d'écran illustrant l'implémentation:
Cette vue affiche uniquement les options d'importation / exportation; L'ajout ou l'édition de données directement dans le panneau d'administration est impossible.
De même, les pages de propriétés individuelles sont affichées en mode en lecture seule, manquant de fonctionnalité d'édition.
Explorons comment cette fonctionnalité en lecture seule a été mise en œuvre dans Django.
Le modèle de base utilisé pour stocker les données de propriété grattées:
<code class="language-python">from django.db import models class Property(models.Model): name = models.CharField(max_length=255) price = models.IntegerField() location = models.CharField(max_length=255) date_listed = models.DateField() def __str__(self): return self.name</code>
admin.py
) pour désactiver l'édition, remplacez les méthodes has_add_permission
et has_change_permission
dans votre fichier admin.py
:
<code class="language-python">from django.contrib import admin from .models import Property class ReadOnlyAdmin(admin.ModelAdmin): list_display = ('name', 'price', 'location', 'date_listed') def has_add_permission(self, request): return False def has_change_permission(self, request, obj=None): return False admin.site.register(Property, ReadOnlyAdmin)</code>
Une classe de base (ReadOnlyAdmin
) est utilisée ici pour gérer list_display
pour une présentation améliorée des données.
Cette approche réalise:
Cette configuration est idéale pour les scénarios où l'affichage des données est primordial, et l'édition ou l'ajout d'entrées est inutile ou potentiellement problématique.
La désactivation de l'édition dans l'administrateur Django est simple et très bénéfique pour sauvegarder les données et fournir un accès sécurisé en lecture seule. En suivant ces étapes, vous pouvez créer rapidement un panneau d'administration sécurisé en lecture seule.
Restez connecté - @syedamahamfahim ?
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!