Найти - Пользователи
Полная версия: Загрузка файлов без Form API
Начало » Django » Загрузка файлов без Form API
1 2
xxnikolayxx
Есть задача - загрузить в модель фото. Через форму. Но не могу найти - как это можно сделать не через FORM API.
Не могу понять, как получить файлы из формы <input type='file' ….>
При отправке request.files пуст, ну и остальные реквесты соответственно не содержат ничего. Как быть?
bu_
Код давайте, модель, форму, вьюшку.
xxnikolayxx
bu_
Код давайте, модель, форму, вьюшку.
Да не вопрос.

Форма:
    
<form name="add_avatar" enctype="multipart/form-data">
            <input type="file" name="avatar" accept="image/*">
            <input type="text" value="5" name="code" readonly style="display: none;">
</form>


        "Отправить": function() {
            var theForm = $(document.forms['add_avatar']).serialize()
            $.ajax({
              type: 'GET',
              url: 'usl',
              data: theForm,
              success: function(data) {
                  var obj = jQuery.parseJSON( data )
                  if (obj.code == 1){
                      setTimeout("window.location.href = 'url'", 300);
                  } else {
                      $('.validateTips').html(obj.request)
                  }
              },
              error:  function(xhr, str){
                $('.validateTips').html('Возникла ошибка: ' + xhr.responseCode);
                }
            });

Вюшка:
Ну тут собственно пока ничего не сделал.
Пытаюсь получить что-то из request.FILES.items() = тут пустой список
Если request.FILES - выводит ошибку:
MultiValueDictKeyError at url
"'avatar'"
xxnikolayxx
Может быть $.ajax подводит…
xxnikolayxx
xxnikolayxx
Может быть $.ajax подводит…
Погуглил, действительно дело в JavaScript. Ajax не умеет файлы загружать, нужно костыли какие-то искать…
Если все-таки кто-то знает решение, буду благодарен.
xxnikolayxx
bu_
Код давайте, модель, форму, вьюшку.
Вопрос решен, спасибо, что натолкнул на мысль =)
ilnur
Вопрос решен, спасибо, что натолкнул на мысль =)
а как решен?
nnmware
xxnikolayxx
Погуглил, действительно дело в JavaScript. Ajax не умеет файлы загружать, нужно костыли какие-то искать…
Если все-таки кто-то знает решение, буду благодарен.
Пользуюсь вот таким аплоадером. Хорошо дружит с Django
xxnikolayxx
ilnur
Раньше отправлял данные через ajax, а теперь отправляю обычным способом - через action формы. Результат обработки формы передаю в переменной result.
В шаблоне: Если есть переменная result - добавляю скрипт модального окна с автоматическим открытием и вывожу result в этом модальном окне.

В итоге отправлю форму и когда страница перезагружается - открывается окно с формой, но в добавок с сообщением и понеслась =)
4kpt_II
Пользуюсь jquery. Проблем с загрузкой файлов через аякс не наблюдал
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB