Лучший способ вызвать ошибку валидации перед сохранением на уровне модели в Django

У меня есть работа, в которой я создаю MyModel методом get_or_create из данных в словаре. У меня есть условие, которое нужно проверить, и если оно не выполняется, просто записать в журнал ошибку.

В основном я просматриваю список dict данных и вызываю get_or_create.

Если это на уровне form, то я использую метод clean, но поскольку это делается в бэкенде, что будет лучшим способом проверки перед сохранением и регистрации в случае неудачи проверки?

Я хотел бы знать, как проверить на обоих - before create или update.

Должен ли я использовать сигнал pre_save или только clean_field_name или clean метод?

Django get_or_create использует save метод для создания модели. поэтому чистые методы не будут вызываться здесь. ваш лучший шанс - переопределить .save() вашей модели и поднять валидацию:

 def save(self, *args, **kwargs):
    if not some_condition:
        raise ValidationError
    else:
        super(Model, self).save(*args, **kwargs)
Вернуться на верх