Django migration failed: значение поля было объявлено с ленивой ссылкой
Я пытаюсь добиться того, чтобы электронная почта моего пользователя была уникальной. В моем приложении под названием accounts
у меня есть следующее models.py
, где я создал CustomUser. Затем в модели Employeee
ниже есть связь 1:1 с CustomUser.
from django.db import models
from django.conf import settings
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
email = models.EmailField(unique=True)
groups = models.ManyToManyField(
'auth.Group',
related_name='customuser_set', # Unique related_name to avoid conflict
blank=True,
help_text='The groups this user belongs to.',
verbose_name='groups',
)
user_permissions = models.ManyToManyField(
'auth.Permission',
related_name='customuser_set', # Unique related_name to avoid conflict
blank=True,
help_text='Specific permissions for this user.',
verbose_name='user permissions',
)
def __str__(self):
return self.username
# Create your models here.
class Employee(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
number_work_hour_per_week = models.FloatField(
help_text="Number of working hour per week"
)
work_hour_limit = models.BooleanField(
default=False,
help_text="If true number_work_hour_per_week applies in the time registration",
)
flexible_time_registration = models.BooleanField(
default=True,
help_text="Allow the user to register working hour flexible without preregistered time",
)
def __str__(self):
return self.user.username
В моем settings.py
я переписал пользователя по умолчанию на accounts.CustomUser
AUTH_USER_MODEL = 'accounts.CustomUser'
Когда я выполняю python manage.py migrate, я получаю следующий стек ошибок
Я не уверен в этой ошибке, так как в settings.py я указываю AUTH_USER_MODEL = 'accounts.CustomUser'
, так почему же в стеке ошибок говорится, что в учетных записях нет модели customuser (когда на самом деле должно быть CustomUser
)
В папке migrations под учетными записями у меня есть 3 py файла
и 0003_alter_customuser_groups_and_more.py
# Generated by Django 5.1 on 2024-08-18 16:37
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
("accounts", "0002_customuser"),
("auth", "0012_alter_user_first_name_max_length"),
]
operations = [
migrations.AlterField(
model_name="customuser",
name="groups",
field=models.ManyToManyField(
blank=True,
help_text="The groups this user belongs to.",
related_name="customuser_set",
to="auth.group",
verbose_name="groups",
),
),
migrations.AlterField(
model_name="customuser",
name="user_permissions",
field=models.ManyToManyField(
blank=True,
help_text="Specific permissions for this user.",
related_name="customuser_set",
to="auth.permission",
verbose_name="user permissions",
),
),
]
Я не могу удалить свою базу данных, так как база данных находится в производстве.