Обход ошибки integrityError, полученной от уникального поля в модели django

Я хочу, чтобы уникальное поле генерировалось на уровне базы данных. Способ, которым работает unique=True, заключается в том, что он выдает ошибку, если видит дублирующееся значение в базе данных. Но мне это не нужно, я хочу, чтобы вместо ошибки просто генерировалось новое уникальное число.

Это модель, которая дает пользователю номер учетной записи, Любая помощь будет высоко оценена

class Account(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    account_number = ShortUUIDField(unique=True,length=10, max_length=25, prefix="217", alphabet="1234567890")

Вы можете переопределить метод save в своей модели, чтобы перехватить ошибку целостности, возникающую в этом методе, и установить новое значение для номера счета.

import random
import string

class Account(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    account_number = CharField(unique=True,length=10, max_length=25)

    def save(self, *args, **kwargs):
        saved = False
        while(!saved)
            try:
                super().save(*args, **kwargs)
                saved=True
            except IntegrityError:
                length = 10 # Set this value to fit your needs
                self.account_number = '217' + ''.join(random.choice(string.digits) for _ in range(length))
            
Вернуться на верх