Невозможно сохранить InMemoryUploadedFile на S3 в Django Admin

Я использую пакет django-storage и пытаюсь загрузить несколько изображений одновременно. Поэтому я переписал методы add_view и save_model в ModelAdmin, чтобы удалить оригинальное поле изображения и использовать пользовательское (с флагом multiple в теге input), заданное в шаблоне HTML:

MODELS.PY

class Media(AbstractCreatedUpdatedDateMixin):
    uuid = models.UUIDField(unique=True, default=uuid4, editable=False, db_index=True)
    user = models.ForeignKey(User, related_name="uploaded_media", on_delete=models.CASCADE)
    title = models.CharField(max_length=255)
    image = models.ImageField(upload_to=uuid_directory_path)


ADMIN.PY

class MediaModelAdmin(admin.ModelAdmin):
    def add_view(self, request, form_url='', extra_context=None):
        self.exclude = ('image', "is_approved")
        extra_context = extra_context or {}
        extra_context['show_save_and_add_another'] = False
        extra_context['show_save_and_continue'] = False
        return super().add_view(request, form_url, extra_context)

    def save_model(self, request, obj, form, change):
        for file in request.FILES.values():
            obj.user = User.objects.filter(id=request.POST.get("user")).first()
            obj.title = request.POST.get("title")
            obj.image.save(file.name, file.file)
            obj.save()

Правильно загружает на S3, но не сохраняет экземпляр и выдает эту ошибку:

TypeError at /admin/media/media/add/
expected string or bytes-like object

Я не уверен, что здесь не так, возможно, тот факт, что загрузка еще не завершена, поэтому транзакция БД откатывается, но я не могу понять, что делать.

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