Что означает валидация для поля изображения в django?

В документе ImageField говорится:

Наследует все атрибуты и методы от FileField, но также проверяет, что загружаемый объект является действительным изображением.

Принимается любая строка

class Foo(Model):
    pic = models.ImageField(upload_to='files')

Например, я могу сохранить это без ошибок, но ничего не загружается в files (даже с правильным файлом)

fooinstance.pic="bogus"
fooinstance.save()
fooinstance.pic.__dict__
{'_file': None,
 'name': 'bogus',
 'instance': <Foo:...>,
 'field': <django.db.models.fields.files.ImageField: pic>,
 'storage': <django.core.files.storage.filesystem.FileSystemStorage at 0x721add4903d0>,
 '_committed': True}

При этом FileField работает/загружается совершенно нормально

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

Вы просто присваиваете строку (путь в хранилище) полю, и даже не вызываете full_clean на модели.

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