Лучший способ вызвать ошибку валидации перед сохранением на уровне модели в 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)