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
Лучше показывать сообщение об ошибке на стороне клиента.