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:
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.
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.
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
):
Ein Ansatz, den ich mit Django 1.7 verfolgt habe (funktioniert auch mit 1.6), ist die Unterklasse AbstractUser
Um Ihr Modell zu verwenden, müssen Sie es so einstellen, dass es für die Authentifizierung in settings.py
verwendet wird:
Beachten Sie auch, dass Sie settings.AUTH_USER_MODEL
beim Referenzieren verwenden müssen
Ihr neues User
-Modell in einer Relation in Ihren Modellen.