Ссылочный файл Backbone.js на модель - PullRequest
4 голосов
/ 23 мая 2011

Я создаю веб-приложение, используя django и backbone.js. Проблема в том, что мне нужно загрузить файлы на сервер. Как связать модель магистрали с файлом? Таким образом, когда я выполняю model.save (), файл загружается на сервер.

РЕДАКТИРОВАТЬ: просто чтобы прояснить ситуацию. Я хочу связать поле входного файла с моделью магистрали. Поэтому, когда пользователь выбирает файл со своего компьютера, я должен иметь возможность связать этот файл с моделью магистрали. И когда я вызываю model.save () в базовом скрипте, он должен отправить файл вместе с остальной частью модели.

Ответы [ 2 ]

0 голосов
/ 11 ноября 2011

Проблема в том, что вы не можете использовать загрузку файлов напрямую с AJAX. Обычный обходной путь - отправить форму на скрытый iframe.

Вы можете использовать jQuery Form плагин. Он предоставляет метод ajaxSubmit, работает как вызов jQuery.ajax, но использует скрытый iframe, поэтому может загружать файлы.

Также вам необходимо переопределить Backbone.sync или переопределить синхронизацию для каждой модели и заменить вызов $ .ajax на вызов $ (someForm) .ajaxSubmit

На сервере вы должны вернуть строку JSON с параметром id и параметром файла, содержащим файл url

0 голосов
/ 23 мая 2011

По сути, веб-браузер решает, когда загружен файл, а не сервер. Сервер может получить файл в запросе. ФАЙЛЫ. Затем вы можете обработать model.save () после того, как браузер отправит файл. Для получения дополнительной информации вы должны увидеть очень хороший сайт документации Django: http://docs.djangoproject.com/en/dev/topics/http/file-uploads/?from=olddocs

Модель в backbone.js предоставляет средства для использования модели для обработки данных. BUt Django имеет свои собственные средства для получения файлов, как указано выше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...