Trumbowyg: сервер Django может обнаружить загрузку файла, но не ввод URL изображения - PullRequest
0 голосов
/ 04 июля 2018

Я использую Trumbowyg , редактор WYSIWYG JavaScript, который имеет функцию рендеринга изображений с вставленных URL-адресов. Он также имеет плагин загрузки , который позволяет загружать локальные изображения и пользовательские обработка на стороне сервера.

Моя функция python / django upload_image() может успешно обнаружить загруженное изображение - однако, когда я использую ввод изображения URL, моя функция python не может его обнаружить. Trumbowyg просто отображает изображение, не проходя через мой бэкэнд Python.

Вот мой код:

$('#id_content').trumbowyg({
    btnsDef: {
        // Create a new dropdown
        image: {
            dropdown: ['insertImage', 'upload'],
            ico: 'insertImage'
        }
    },
    // Redefine the button pane
    btns: [
        ['strong', 'em', 'del'],
        ['link'],
        ['image'], // Our fresh created dropdown
    ],
    plugins: {
        // Add imagur parameters to upload plugin for demo purposes
        upload: {
            serverPath: '/upload_image/',
            fileFieldName: 'content_image',
            urlPropertyName: 'url'
        }
    }
});
def upload_image(request):
    print('Success') #only prints when I use the upload input, not the URL input

Почему можно обнаружить загруженное изображение, но не ввод URL-адреса?

1 Ответ

0 голосов
/ 12 июля 2018

Как уже указывалось, Trumbowyg не отправляет URL на сервер, если пользователь загружает изображение с помощью URL.

Но если вы действительно хотите разместить изображения на своем собственном сервере, есть способ сделать это.

Когда пользователь отправит форму, вы получите содержимое текстовой области в своем бэкэнде. Затем вы можете прочитать содержимое и найти тег <img src="...">.

В этот момент вы можете проверить, не начинается ли значение src с вашего имени хоста S3 bucket, вы можете загрузить это изображение, используя urllib или requests библиотека, сохраните ее в своем ведре и замените значение src.

Поскольку представленные данные будут в формате HTML, ознакомьтесь с отличным Beautiful Soup . Это облегчит разбор HTML.

...