Ein Blog

27 Artikel

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 models

class 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
mathiasmell 12. Februar 2019 15:55 django

0 Kommentare

  • Bisher noch keine Kommentare zum Beitrag. Sei der Erste!