diff --git a/pflaenzli/pflaenzli/migrations/0001_initial.py b/pflaenzli/pflaenzli/migrations/0001_initial.py index 0cbdf65..bd80fac 100644 --- a/pflaenzli/pflaenzli/migrations/0001_initial.py +++ b/pflaenzli/pflaenzli/migrations/0001_initial.py @@ -1,7 +1,8 @@ -# Generated by Django 4.1.7 on 2023-04-05 15:27 +# Generated by Django 4.1.7 on 2023-04-05 21:38 from django.conf import settings import django.contrib.auth.models +import django.contrib.auth.validators from django.db import migrations, models import django.db.models.deletion import django.utils.timezone @@ -20,24 +21,113 @@ class Migration(migrations.Migration): name="PflaenzliUser", fields=[ ( - "user_ptr", - models.OneToOneField( + "id", + models.BigAutoField( auto_created=True, - on_delete=django.db.models.deletion.CASCADE, - parent_link=True, primary_key=True, serialize=False, - to=settings.AUTH_USER_MODEL, + verbose_name="ID", + ), + ), + ("password", models.CharField(max_length=128, verbose_name="password")), + ( + "last_login", + models.DateTimeField( + blank=True, null=True, verbose_name="last login" + ), + ), + ( + "is_superuser", + models.BooleanField( + default=False, + help_text="Designates that this user has all permissions without explicitly assigning them.", + verbose_name="superuser status", + ), + ), + ( + "username", + models.CharField( + error_messages={ + "unique": "A user with that username already exists." + }, + help_text="Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.", + max_length=150, + unique=True, + validators=[ + django.contrib.auth.validators.UnicodeUsernameValidator() + ], + verbose_name="username", + ), + ), + ( + "first_name", + models.CharField( + blank=True, max_length=150, verbose_name="first name" + ), + ), + ( + "last_name", + models.CharField( + blank=True, max_length=150, verbose_name="last name" + ), + ), + ( + "email", + models.EmailField( + blank=True, max_length=254, verbose_name="email address" + ), + ), + ( + "is_staff", + models.BooleanField( + default=False, + help_text="Designates whether the user can log into this admin site.", + verbose_name="staff status", + ), + ), + ( + "is_active", + models.BooleanField( + default=True, + help_text="Designates whether this user should be treated as active. Unselect this instead of deleting accounts.", + verbose_name="active", + ), + ), + ( + "date_joined", + models.DateTimeField( + default=django.utils.timezone.now, verbose_name="date joined" + ), + ), + ("zipcode", models.PositiveIntegerField(blank=True)), + ( + "groups", + models.ManyToManyField( + blank=True, + help_text="The groups this user belongs to. A user will get all permissions granted to each of their groups.", + related_name="user_set", + related_query_name="user", + to="auth.group", + verbose_name="groups", + ), + ), + ( + "user_permissions", + models.ManyToManyField( + blank=True, + help_text="Specific permissions for this user.", + related_name="user_set", + related_query_name="user", + to="auth.permission", + verbose_name="user permissions", ), ), - ("zipcode", models.PositiveIntegerField()), ], options={ "verbose_name": "user", "verbose_name_plural": "users", "abstract": False, }, - bases=("auth.user",), managers=[ ("objects", django.contrib.auth.models.UserManager()), ], @@ -60,7 +150,7 @@ class Migration(migrations.Migration): "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - to="pflaenzli.pflaenzliuser", + to=settings.AUTH_USER_MODEL, ), ), ], @@ -86,7 +176,7 @@ class Migration(migrations.Migration): "user", models.ForeignKey( on_delete=django.db.models.deletion.CASCADE, - to="pflaenzli.pflaenzliuser", + to=settings.AUTH_USER_MODEL, ), ), ], diff --git a/pflaenzli/pflaenzli/models.py b/pflaenzli/pflaenzli/models.py index 8c551ef..daefcd7 100644 --- a/pflaenzli/pflaenzli/models.py +++ b/pflaenzli/pflaenzli/models.py @@ -1,11 +1,11 @@ from django.db import models from django.dispatch import receiver -from django.contrib.auth.models import User +from django.contrib.auth.models import AbstractUser from django.utils import timezone from django.core.files.storage import default_storage -class PflaenzliUser(User): +class PflaenzliUser(AbstractUser): zipcode = models.PositiveIntegerField(blank=True) diff --git a/pflaenzli/pflaenzli_django/settings.py b/pflaenzli/pflaenzli_django/settings.py index 2dd84cd..5f7bb5c 100644 --- a/pflaenzli/pflaenzli_django/settings.py +++ b/pflaenzli/pflaenzli_django/settings.py @@ -123,6 +123,7 @@ AUTH_PASSWORD_VALIDATORS = [ }, ] +AUTH_USER_MODEL = 'pflaenzli.PflaenzliUser' LOGOUT_REDIRECT_URL = "/" # Internationalization