Django Плохой дескриптор файла при сохранении изображения увеличенного размера

Я новичок в Django и Python. Я пытаюсь изменить размер изображений при их сохранении. При попытке сохранить изображение я получаю следующую ошибку: OSError at /company_profile/add_logo/ [Errno 9] Bad file descriptor.

До сих пор я не смог решить эту проблему. Я знаю, что в коде могут быть и другие ошибки.

Модель:

from django.db import models
from PIL import Image
import PIL

from constrainedfilefield.fields import ConstrainedFileField

class CompanyNavbarLogo(models.Model):
    date = models.DateTimeField(auto_now_add=True, null=True)
    title = models.CharField(default='navbar logo', max_length=50)
    image = ConstrainedFileField(
        null=True,
        blank=True,
        upload_to='company_profile/logo',
        content_types=['image/png', 'image/jpg', 'image/jpeg', 'image/gif'],
        max_upload_size=2097152,
    )

    def save(self, *args, **kwargs):
        super().save(*args, **kwargs)
        image = self.image
        img = Image.open(self.image.path)
        fixed_height = 50
        height_percent = (fixed_height / (img.size[1]))
        width_size = int((float(img.size[0]) * float(height_percent)))

        if img.height > 50:
              width_size = int((float(img.size[0]) * float(height_percent)))
              image = img.resize((width_size, fixed_height), PIL.Image.NEAREST)
              image.save(self.image)





    def __str__(self):
      return self.title

Вид:

from django.shortcuts import render
from .models import CompanyNavbarLogo
from django.views.generic.edit import CreateView

class CompanyLogoCreateView(CreateView):
    model = CompanyNavbarLogo
    template_name = 'company_accounts/add_logo.html'
    fields = ['image']

    def get_success_url(self):
        return reverse('home')

Шаблон:

{% extends 'base.html' %}
{% load crispy_forms_tags %}

  {% block content %}
  <div class="section-container container">
  <h1>Add logo</h1>
  
   <form action="" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form.media }}
    {{ form|crispy }}
    <input type="submit" value="save">
   </form>
  </div>
  {% endblock content %}
Вернуться на верх