Django Custom User Model
Django bietet von Haus aus eine Nutzerverwaltung (ein User Model). Sie bietet Felder wie Passwort, Nutzername, Vor- und Nachname.
Häufig benötigt man jedoch weitere Angaben zum Nutzer. Es bietet sich an bei jedem neuen Django Projekt von Beginn an (noch vor der ersten Datenbankmigration ("python manage.py migrate") bzw. bevor die ersten Produktivdaten in der Datenbank sind) die Grundlagen für diese Erweiterung des User Models vorzusehen.
- Django App erstellen ("python manage.py startapp users")
- App in "settings.py" registrieren
- In "models.py" der Users App die CustomUser Klasse definieren
from django.contrib.auth.models import AbstractUser
from django.db import modelsclass CustomUser(AbstractUser):
pass
- In "forms.py" der Users App die UserCreationForm, UserChangeForm erweitern
from django import forms from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm): model = CustomUser fields = UserCreationForm.Meta.fields
class CustomUserChangeForm(UserChangeForm):
class Meta: model = CustomUser fields = UserChangeForm.Meta.fields
- Die "admin.py" der Users App aktualisieren
from django.contrib import admin from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm from .models import CustomUser
class CustomUserAdmin(UserAdmin): add_form = CustomUserCreationForm form = CustomUserChangeForm model = CustomUser
admin.site.register(CustomUser, CustomUserAdmin)
- "python manage.py makemigrations users" ausführen
- "python manage.py migrate" ausführen
0 Kommentare
Bisher noch keine Kommentare zum Beitrag. Sei der Erste!