Сжимаю картинки с pillow на уровне models.py, на локалке быстро сжимает, но на сервере он долго сжимает, как правильно сделать?

from PIL import Image
from io import BytesIO
from django.core.files.uploadedfile import InMemoryUploadedFile

class PostImage(models.Model):
    image = models.ImageField(upload_to=upload_image_path)
    post = models.ForeignKey('Post', on_delete=models.CASCADE, related_name="images")
    @property
    def get_absolute_image_url(self):
        return "{0}".format(self.image.url)


    def save(self, *args, **kwargs):
        if not self.id:
            self.image = self.compressImage(self.image)
        super(PostImage, self).save(*args, **kwargs)

    def compressImage(self, image):
        imageTemproary = Image.open(image)
        outputIoStream = BytesIO()
        imageTemproaryResized = imageTemproary.resize((1020,573)) 
        imageTemproary.save(outputIoStream , format='JPEG', quality=50)
        outputIoStream.seek(0)
        image = InMemoryUploadedFile(outputIoStream,'ImageField', "%s.jpg" % image.name.split('.')[0], 'image/jpeg', sys.getsizeof(outputIoStream), None)
        return image

views.py

class PostCreateView(LoginRequiredMixin, CreateView):
    model = Post
    template_name = 'main_app/create_post2.html'
    form_class = PostCreateForm

    def get_initial(self):
        category = get_object_or_404(Category, slug=self.kwargs.get('slug'))
        return {
            'category': category,
        }

    def get_context_data(self, **kwargs):
        context = super(PostCreateView, self).get_context_data(**kwargs)
        if self.request.POST:
            context['formset'] = ImageFormset(self.request.POST , self.request.FILES, queryset=PostImage.objects.none())
            context['category'] = get_object_or_404(Category, slug=self.kwargs.get('slug'))
            context['category_list'] = Category.objects.filter(parent__isnull=True)

        else:
            context['category'] = get_object_or_404(Category, slug=self.kwargs.get('slug'))
            context['metros'] = Metro.objects.all()
            context['regions'] = City.objects.all()
            context['categories'] = Category.objects.all()
            context['category_list'] = Category.objects.filter(parent__isnull=True)
            context['formset'] = ImageFormset(queryset=PostImage.objects.none())
        return context

    def form_valid(self, form):
        context = self.get_context_data()
        images = context['formset']
        with transaction.atomic():
            form.instance.author = self.request.user

            if images.is_valid():
                self.object = form.save()
                images.instance = self.object
                images.save()
            else:
                return self.render_to_response(self.get_context_data(form=form))
        return super(PostCreateView, self).form_valid(form)

Ответы (0 шт):