django bester Ansatz zum Erstellen mehrerer Benutzer

8

Ich möchte mehrere Benutzer in django erstellen. Ich möchte wissen, welche Methode die beste ist.

%Vor%

oder sollte ich verwenden ..

%Vor%

oder ich muss ein benutzerdefiniertes Benutzermodell erstellen ... Was ist gut beim Erstellen von mehreren Typen Benutzer ... ??

    
gamer 15.09.2014, 06:05
quelle

2 Antworten

14

Django hat nicht mehrere Benutzer - es hat nur einen Benutzer und basierend auf Berechtigungen können Benutzer verschiedene Dinge tun.

Also, um damit anzufangen - es gibt nur einen Benutzertyp in django. Wenn Sie das Standard-Authentifizierungsframework verwenden, heißt das Modell für diesen Benutzer User von django.contrib.auth.models .

Wenn Sie das Benutzerverhalten in django anpassen möchten, gibt es drei Dinge, die Sie tun können:

  1. Passen Sie an, wie Sie sie authentifizieren . Standardmäßig erfolgt die Authentifizierung mithilfe einer Datenbank, in der Kennwörter gespeichert sind. Sie können sich gegen facebook / google usw. oder gegen Ihre bestehende Benutzerdatenbank authentifizieren - zum Beispiel mit ActiveDirectory, wenn Sie sich in einem Windows-Netzwerk befinden.

  2. Erstellen Sie benutzerdefinierte Berechtigungen und basierend auf diesen Berechtigungen , schränken Sie ein, welche Funktionen Benutzer ausführen können. Standardmäßig fügt django bei jedem Modell die grundlegenden Berechtigungen "kann bearbeiten", "kann löschen" und "kann lesen" hinzu. Sie können Ihre eigenen erstellen und dann überprüfen, ob der Benutzer über diese spezifischen Berechtigungen verfügt.

  3. Sie können zusätzliche Informationen über den Benutzer zusammen mit dem, was normalerweise von django gespeichert wird, speichern. Es gibt zwei Möglichkeiten, dies zu tun, abhängig davon, wie viele Anpassungen Sie benötigen. Wenn alles, was django bietet, standardmäßig funktioniert, und alles, was Sie tun wollen, ist zusätzliche Informationen über den Benutzer zu speichern, können Sie Erweitern Sie das Benutzermodell - in früheren Versionen wurde dies als Erstellung eines benutzerdefinierten Profils bezeichnet. Die andere Möglichkeit besteht darin, Ihre eigene User zu erstellen. Modell , wenn Sie eine tiefere Anpassung wünschen. Die häufigste Verwendung eines benutzerdefinierten Benutzermodells ist, wenn Sie eine E-Mail-Adresse als Benutzernamen verwenden möchten.

Sie müssen nicht alle drei Aufgaben erledigen. Manchmal möchten Sie lediglich zusätzliche Informationen speichern oder sich mit ihrer E-Mail-Adresse authentifizieren lassen. In einigen Anwendungen müssen Sie alle drei Orte ändern.

In Ihrem Fall müssen Sie zusätzliche Informationen zu einem Benutzer speichern. Sie müssen dazu Erweitern Sie das Benutzermodell , indem Sie ein Modell erstellen, das auf User verweist (Hinweis: Sie erben nicht von User ):

%Vor%     
Burhan Khalid 15.09.2014, 06:45
quelle
2

Ein Ansatz, den ich mit Django 1.7 verfolgt habe (funktioniert auch mit 1.6), ist die Unterklasse AbstractUser

%Vor%

Um Ihr Modell zu verwenden, müssen Sie es so einstellen, dass es für die Authentifizierung in settings.py verwendet wird:

%Vor%

Beachten Sie auch, dass Sie settings.AUTH_USER_MODEL beim Referenzieren verwenden müssen Ihr neues User -Modell in einer Relation in Ihren Modellen.

%Vor%     
Nils Werner 15.09.2014 07:01
quelle

Tags und Links