Переопределение идентификатора по умолчанию Django в модели пользователя
У нас есть рабочий проект Django в среде с несколькими базами данных. Это означает, что у нас есть несколько экземпляров базы данных проекта, запущенных на отдельных машинах, и что все индивидуальные изменения распространяются на другие базы данных. Проект работает очень хорошо и без каких-либо проблем.
До сих пор мы не использовали инструментарий Django Auth, то есть не было логина или пароля пользователя. Это должно измениться. Чтобы это работало в нашей среде репликации, нам нужно изменить идентификатор пользователя по умолчанию на что-то похожее на UUID, чтобы избежать коллизий при репликации.
Итак, задача заключается в следующем: как изменить поле id модели User в Auth App? У нас нет никаких других специфических требований, кроме этого. Нам не нужно никаких дополнительных полей и прочего. Просто изменить id.
В случае, если написание собственной пользовательской модели пользователя неизбежно, возможно, кто-то может указать нам на какую-то хорошую статью в блоге об этом или поделиться любым другим ресурсом.
В идеале мы хотели бы сохранить все остальное. включая доступ к интерфейсу администратора, группам и разрешениям.
Заранее спасибо
Вы можете создать новый User
класс, расширяя базовый класс, как определено здесь
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
id = models.UUIDField()
и в settings.py
множество AUTH_USER_MODEL
как определено здесь
AUTH_USER_MODEL = 'myapp.User'