Моя модель пользователя-клиента выглядит так:
class User(AbstractBaseUser):
id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False, unique=True)
email = models.EmailField(unique=True)
is_staff = models.BooleanField(default=True)
is_admin = models.BooleanField(default=False)
is_superuser = models.BooleanField(default=False)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = UserManager()
def has_perm(self, perm, obj=None):
return self.is_admin
def has_module_perms(self, app_label):
return self.is_admin
def __str__(self):
return self.email
class Meta:
db_table = 'login'
Когда я пытаюсь войти в систему с правами администратора после выполнения manage.py createduperuser, выдается следующая ошибка:
ProgrammingError at /admin/
operator does not exist: integer = uuid
LINE 1: ...NER JOIN "login" ON ("django_admin_log"."user_id" = "login"....
I поймите, что это связано с тем, что PostgreSQL строго типизирован и Django не хочет принимать входящий тип поля. Я хочу go обойти эту проблему, так как многие учебные пособия для пользователей указывают первичный ключ типа UUID и, похоже, не сталкиваются с этой проблемой, когда в шагах предлагается войти в систему с правами администратора и протестировать ее.