Как сгенерировать случайный уникальный идентификатор в django?

Я пытаюсь сгенерировать случайное имя пользователя на основе его полного имени.

Также здесь телефон разрешен как null и blank, но при создании api представления пустая строка передается на сервер, если телефон не указан, и при этом возникает ошибка целостности телефона.

Здесь я думаю, что с условием while я получаю 504 Gateway Time-out ответ.

Есть ли способ обойтись без оператора while, так как он делает запрос медленнее.

 class User(AbstractUser):
    phone = models.CharField(max_length=10, blank=True, null=True, unique=True)
    ...
    def save(self, *args, **kwargs):
        if not self.username:
            counter = 1
            name = self.full_name
            unique_id = name.replace(" ", "")
            while User.objects.filter(username=unique_id):
                name = f"{unique_id}{counter+1}"
            self.username = unique_id
        return super().save(*args, **kwargs)
Вернуться на верх