Переопределение идентификатора по умолчанию 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'
Вернуться на верх