Django.models пользовательское пустое значение

Спасибо, что нашли время рассмотреть этот запрос.

Я устанавливаю поле ID в одной из моих моделей Django. Это поле CharField и выглядит следующим образом:

my_id = models.CharField(primary_key=True, max_length=5,
                           validators=[RegexValidator(
                               regex=ID_REGEX,
                               message=ID_ERR_MSG,
                               code=ID_ERR_CODE
                           )])

Я хотел бы добавить опцию default/blank или null, которая вызывает глобальную или классную функцию, которая будет перебирать существующие ID, находить первый несуществующий и назначать его в качестве следующего ID пользователя. Однако, когда я добавляю вызов blank=foo(), я получаю код ошибки о том, что функция не существует.

Лучший, pb

Edit: Я также попробовал использовать отдельный файл utils и импортировать функцию, но (неудивительно) я получаю ошибку циклического импорта, поскольку мне нужно вызвать класс, чтобы получить объекты.

Попробуйте переопределить метод сохранения модели и выполнить логику там:

def save(self, *args, **kwargs):
    #Custom logic
    super().save(*args, **kwargs)
Вернуться на верх