ОШИБКА: «Загрузите действительное изображение. Файл, который вы загрузили, не был изображением или поврежденным изображением.»
Я искал вокруг и не смог найти решение для своегопроблема.Я использую одни и те же изображения локально в venv, и они работают.Я использую те же изображения в док-контейнере, который имеет ту же библиотеку Pillow и зависимости, и это работает.
У меня есть Django ImageField
, у меня есть простая форма администратора.
Я могу получить изображения для загрузки на S3 для хранения.Я извлек док-контейнер, который мы используем на серверах, и я запустил его локально, но не могу получить ошибку.Я не сталкивался с этой ошибкой раньше при загрузке изображений, поэтому я не уверен, почему это происходит.
# models.py
@deconstructible
class RandomFileName(object):
def __init__(self, path):
self.path = path
def __call__(self, instance, filename):
ext = filename.split('.')[-1]
filename = '{}.{}'.format(uuid.uuid4().hex, ext)
return os.path.join(self.path, filename)
class MyModel(models.Model):
name = models.CharField(max_length=50)
avatar = models.ImageField(
upload_to=RandomFileName('avatars')
)
...
# admin.py
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
list_display = (
'name',
...
)
fieldsets = (
(None, {'fields': (
'name',
'avatar',
)}),
)
...
Зависимости:
Django == 2.0.3
Подушка == 5.3.0
Изменить:
Это позади AWS API Gateway, и мой ответ / решение ниже, если кто-то должен столкнуться с этимвыдайте себя.