Django-Admin как обрабатывать ошибки в save_model():

У меня есть простая модель с FileField и я хочу работать с файлами перед их окончательным сохранением. Я переписал метод save_model() и все работает. Теперь я хочу реализовать обработку ошибок, и я чувствую, что должен был использовать другой метод для проверки (может быть clean()?):

def save_model(self, request, obj, form, change):
    super().save_model(request, obj, form, change)

    if "file" in form.changed_data:
        if ok:
            proceed
        else:
            raise Error

Мне нужно различать типы загруженных файлов перед их сохранением (зипы нужно сначала распаковать, потом сохранить и прочее).

Для валидации полей формы следует использовать метод clean().

class YourModelForm(forms.ModelForm):
    ...
    ...

    def clean(self):
        cleaned_data = super().clean()
        ...
        ... # other validation if need

        if "file" in self.changed_data:
            if not ok:
                raise error

Лучше показывать сообщение об ошибке на стороне клиента.

Вернуться на верх