Heim >Backend-Entwicklung >Python-Tutorial >So deaktivieren Sie die Bearbeitung von Verwalten in Django Admin Panel
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.
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:
Diese Ansicht zeigt nur Import-/Exportoptionen; Das Hinzufügen oder Bearbeiten von Daten direkt im Admin-Bereich ist nicht möglich.
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.
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>
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.
Dieser Ansatz erreicht:
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.
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!