Soll ich Djangos Admin-Funktion verwenden?

8

Ich baue eine Django-basierte Review-Website, auf der öffentliche Benutzer den gesamten Inhalt der Site erstellen. Benutzer erstellen Bewertungen für bestimmte Artikel und sie erstellen auch die Artikel selbst, die überprüft werden (mit einer Beschreibung und einer kurzen Zusammenfassung des Artikels sowie einigen Tags).

Meine Frage lautet wie folgt: Soll ich die Admin-Funktionen von Django für diese Website verwenden (z. B. um die öffentlichen Benutzer mit Admin-Steuerelementen auszustatten)? Oder sollte ich einfach bei normalen Formen bleiben? Ich kenne den Admin-Aspekt von Django nicht sehr gut, und bisher habe ich nur Formulare für die Website verwendet, aber ich habe viele Leute gesehen, die über Djangos Admin-Funktionen sprechen, und ich fange an, mich zu fragen wenn ich sie benutzen sollte.

Danke für jede Rückmeldung!

    
Jon Lemmon 12.09.2011, 01:27
quelle

3 Antworten

8

Vielleicht. Wenn die Admin-Funktionalität den Großteil dessen abdeckt, was Sie anbieten möchten, gibt es keinen Grund, warum Sie es nicht als Ausgangspunkt verwenden sollten.

django.contrib.admin ist eine Anwendung wie jede andere und bietet grundsätzlich eine CRUD-Schnittstelle für Ihre Modelle. Der Zugriff kann über Gruppen / Berechtigungen gesteuert werden, genau wie bei einer Anwendung, die Sie selbst schreiben. Sie können vollen Zugriff auf ein Modell mit einem Einzeiler geben, müssen aber offensichtlich beim Öffnen für andere korrekt konfigurieren.

Siehe auch meine Frage Django AdminSite / ModelAdmin für Endbenutzer? und ähnliche Fragen Django-Admin den Benutzern zugänglich machen. Schädlich? und How um die Django Admin-Seite für Nicht-Mitarbeiter zugänglich zu machen?

Zu den Argumenten über den "beabsichtigten Gebrauch" des Administrators sollten Sie Djangos Sicherheitsupdate Ende letzten Jahres beachten: Ссылка zu Abfragezeichenfolgen in Objektlisten. Ein solches Update (Zitat: "Ein Angreifer mit Zugriff auf den Administrator [...]") ist ein klarer Hinweis darauf, dass die Implementierung des Berechtigungssystems durch den Administrator ständig überprüft wird.

    
Danny W. Adair 12.09.2011, 02:50
quelle
3

Ich würde die Admin-Oberfläche keinen normalen Benutzern zugänglich machen. Sie können die Authentifizierungs- und Benutzerverwaltungsseite (für Ihre Zwecke) verwenden, es ist jedoch in der Regel die beste Vorgehensweise, Benutzern eine separate Möglichkeit zum Verwalten ihrer Objekte zu geben. Sie riskieren auch nicht so sehr, Benutzern die falschen Privilegien zu gewähren (oder ihnen zu erlauben, eigene Rechte zu gewähren).

Lesen Sie die Dokumentation (https://docs.djangoproject.com/en/dev/ref/contrib/admin/), wenn Sie einen besseren Überblick darüber haben möchten, was sie tun kann.

    
elithrar 12.09.2011 01:33
quelle
3

Nein. Der django admin ist nicht für Endbenutzer gedacht.

Die Django-Admin-Funktion soll den Website-Entwickler unterstützen, und das ist alles. Selbst die Verwendung durch Site-Administratoren ist kontraindiziert, obwohl in der Praxis die meisten kleinen Websites damit durchkommen, da sie nur ein paar Leute sprechen, die den Entwickler persönlich anrufen können, wenn sie in Schwierigkeiten geraten.

Für Ihre Zwecke sind die Überprüfungspunkte und der Arbeitsablauf beim Erstellen der Elemente ein wichtiger Bestandteil Ihres Anwendungsfunktionssatzes. Der Administrator wird Ihnen Ideen geben, aber es wäre ein Fehler zu versuchen, Ihre Anwendung darauf zu bauen.

    
John Mee 12.09.2011 01:42
quelle