Heim >Backend-Entwicklung >Python-Tutorial >So deaktivieren Sie die Bearbeitung von Verwalten in Django Admin Panel

So deaktivieren Sie die Bearbeitung von Verwalten in Django Admin Panel

Barbara Streisand
Barbara StreisandOriginal
2025-01-27 06:12:08983Durchsuche

Django Admin Panel: Ein schreibgeschützter Ansatz für die Datenverwaltung

Das Django Admin Panel bietet eine benutzerfreundliche Oberfläche zum Verwalten von Modellen, Daten und Benutzern. Die integrierten Such- und Filterfunktionen sind unglaublich praktisch. Manchmal ist es jedoch entscheidend, den Bearbeitungszugriff auf bestimmte Modelle oder Felder zu beschränken. Dies gilt insbesondere dann, wenn die Datenintegrität gewahrt bleiben muss, um versehentliche Änderungen zu verhindern, oder wenn das Panel ausschließlich der Datenanzeige dient.

Ein praktisches Beispiel

Kürzlich benötigte ein Kunde eine Lösung zum Anzeigen, Filtern und Paginieren von Daten, die von einer externen Website stammen – insbesondere zum Verfolgen neuer Immobilienangebote. Django lieferte eine elegante Lösung, die die Datenverwaltung ohne die Notwendigkeit einer benutzerdefinierten Seitenerstellung ermöglicht.

Unten finden Sie Screenshots, die die Implementierung veranschaulichen:

Übersicht über das Admin-Panel:

How to disable admin editing in Django Admin Panel

Diese Ansicht zeigt nur Import-/Exportoptionen; Das Hinzufügen oder Bearbeiten von Daten direkt im Admin-Bereich ist nicht möglich.

Individuelle Eintragsseite:

How to disable admin editing in Django Admin Panel

In ähnlicher Weise werden einzelne Eigenschaftenseiten im schreibgeschützten Modus angezeigt und verfügen nicht über Bearbeitungsfunktionen.

Lassen Sie uns untersuchen, wie diese schreibgeschützte Funktionalität in Django implementiert wurde.

Bearbeitung in Django Admin deaktivieren

1. Modelldefinition

Das Kernmodell, das zum Speichern von Scrape-Eigenschaftsdaten verwendet wird:

<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>

2. Anpassen des Admin-Panels (admin.py)

Um die Bearbeitung zu deaktivieren, überschreiben Sie die Methoden has_add_permission und has_change_permission in Ihrer admin.py-Datei:

<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>

Eine Basisklasse (ReadOnlyAdmin) wird hier verwendet, um list_display für eine verbesserte Datenpräsentation zu verwalten.

Das Ergebnis

Dieser Ansatz erreicht:

  1. Entfernung der Schaltfläche „Hinzufügen“:Die Option zum Hinzufügen neuer Einträge wurde vollständig aus der Admin-Oberfläche entfernt.
  2. Schreibgeschützte Eintragsseiten: Wenn Sie auf einen vorhandenen Eintrag klicken, wird dieser in einer schreibgeschützten Ansicht ohne Schaltflächen zum Speichern geöffnet.

Dieses Setup ist ideal für Szenarien, in denen die Datenanzeige im Vordergrund steht und das Bearbeiten oder Hinzufügen von Einträgen unnötig oder möglicherweise problematisch ist.

Vorteile eines schreibgeschützten Administratorpanels

  • Datenintegrität: verhindert zufällige Änderungen an der extern aus Datenbeschaffung (z. B. durch Scraping oder APIs).
  • schreibgeschützte Ansichten für Referenzdaten: perfekt zum Anzeigen und Filtern von Daten in Anwendungen wie Analytics-Dashboards, Eigenschaftslisten oder Protokollen.

Schlussfolgerung

Deaktivieren der Bearbeitung im Django-Administrator ist unkompliziert und für die Sicherung von Daten und die Bereitstellung eines sicheren schreibgeschützten Zugriffs von großem Nutzen. Wenn Sie diese Schritte ausführen, können Sie schnell ein sicheres, schreibgeschütztes Administratorfeld erstellen.

Bleiben Sie in Verbindung - @Syedamahamfahim?

Das obige ist der detaillierte Inhalt vonSo deaktivieren Sie die Bearbeitung von Verwalten in Django Admin Panel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn