Заменил стандартную модель User на свою:
#task_manager.users.models.py
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
"""Переопределенная модель пользователя."""
def __str__(self) -> str:
return self.get_full_name()
Изменил AUTH_USER_MODEL:
#task_manager.settings.py
...
AUTH_USER_MODEL = 'users.User'
В проекте использовал
django.contrib.auth.get_user_model()
поэтому в коде ничего больше изменять (как я думал) не пришлось. Проект запустился, но при создании и изменении уже существующих моделей работал некорректно, вернее, выбрасывал ошибку (кто бы мог подумать).
Начал гуглить, понял, что нельзя просто так заменить одну модель на другую (удивительно, правда?). В документации ссылаются на этот вопрос -
#25313.
Указал
db_table
для модели. Удалил вручную файлы миграции из проекта. Но при попытке создать новые миграции командой
django-admin makemessages
ловлю ошибку -
django.core.exceptions.ImproperlyConfigured: Requested setting CACHES, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Пробовал вызывать settings.configure(), ошибка не сильно меняется. Поставил
DJANGO_SETTINGS_MODULE="task_manager.settings"
командой
export
, так он мне начал говорить, что приложения task_manager не существует. Попробовал еще удалить файлы кэша -
find . -path "*/migrations/*.pyc" -delete
, не помогло.
Выручите.