Изменение размера изображения в Django-ckeditor или максимальная ширина изображения

Я добавил ckeditor в свой проект django, но есть проблема. Загрузка изображений в Ckeditor работает, но когда я добавляю изображение слишком большой ширины, изображение перекрывает контейнер.

Добавляю картинку, чтобы дать вам представление:

введите описание изображения здесь


I tried add sample code to ckeditor_uploader > views.py > ImageUploadView():

class ImageUploadView(generic.View):
  http_method_names = ['post']

  def post(self, request, **kwargs):
    """
    Uploads a file and send back its URL to CKEditor.
    """
    uploaded_file = request.FILES['upload']

    backend = registry.get_backend()

    ck_func_num = request.GET.get('CKEditorFuncNum')
    if ck_func_num:
        ck_func_num = escape(ck_func_num)

    filewrapper = backend(storage, uploaded_file)
    allow_nonimages = getattr(settings, 'CKEDITOR_ALLOW_NONIMAGE_FILES', True)
    # Throws an error when an non-image file are uploaded.
    if not filewrapper.is_image and not allow_nonimages:
        return HttpResponse("""
            <script type='text/javascript'>
            window.parent.CKEDITOR.tools.callFunction({0}, '', 'Invalid file type.');
            </script>""".format(ck_func_num))

    filepath = get_upload_filename(uploaded_file.name, request)
    print(filepath, "filepath")
    print(uploaded_file,"path")

    ## IT'S MY SAMPLE CODE
    image = Image.open(filewrapper.file_object)

    if image.width > 800:
        factor = 800/image.width
        new_width = int(image.width*factor)
        new_height = int(image.height*factor)
        
        width = new_width
        height = new_height
     
        # output_size = (300,300)
        # image.thumbnail(output_size)
        # image.save(filepath.path)
        print(width)
        print(height)
    else: 
        width = image.width
        height = image.height

    saved_path = filewrapper.save_as(filepath)
    print(saved_path, "saved_path")

    url = utils.get_media_url(saved_path)
    print(url, "url")

    if ck_func_num:
        # Respond with Javascript sending ckeditor upload url.
        return HttpResponse("""
        <script type='text/javascript'>
            window.parent.CKEDITOR.tools.callFunction({0}, '{1}');
        </script>""".format(ck_func_num, url))
    else:
        _, filename = os.path.split(saved_path)
        retdata = {'url': url, 'uploaded': '1',
                   'fileName': filename,
                   'width': width, 'height': height} 
        return JsonResponse(retdata)

upload = csrf_exempt(ImageUploadView.as_view())

для тех, кто не видел мой пример кода:

image = Image.open(filewrapper.file_object)

if image.width > 800:
    factor = 800/image.width
    new_width = int(image.width*factor)
    new_height = int(image.height*factor)

    width = new_width
    height = new_height

    # output_size = (300,300)
    # image.thumbnail(output_size)
    # image.save(filepath.path)
    print(width)
    print(height)
else: 
    width = image.width
    height = image.height

Но он не работает..

И я попробовал изменить style.css :

.post .caption img {width: 100%;}

<div class="caption border">
      {{message | safe }}
</div>

Но он не работает..

И я попробовал добавить settings.py:

CKEDITOR_THUMBNAIL_SIZE = (500, 500)

Но он не работает..

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