Django-Ajax-загрузки-виджет приложение Django, который обеспечивает функциональность загрузки файла для AJAX FileFields и ImageFields с простой заменой виджетов в форме.
Никаких изменений не требуется поля ваши модели или логики приложения. Этот плагин работает прозрачно, так что ваши модели формы могут работать с файлами так, как будто они были загружены по "традиционной" File Browser загрузки.
Использование
Обратитесь к примеру приложения, включенного в пакет для рабочего примера.
Серверные
В вашей форме, используйте AjaxClearableFileInput на FileField или ImageField.
от Django форм импортных
от ajax_upload.widgets импорта AjaxClearableFileInput
класс MyForm (forms.Form):
& NBSP; my_image_field = forms.ImageField (виджет = AjaxClearableFileInput ())
Или, при использовании ModelForm вы можете просто переопределить виджет.
от Django форм импортных
от ajax_upload.widgets импорта AjaxClearableFileInput
класс MyForm (forms.ModelForm):
& NBSP; класс Мета:
& NBSP; модель = MyModel
и NBSP; виджетов = {
& NBSP; 'my_image_field ": AjaxClearableFileInput
& NBSP;}
Сторона клиента
Включите Javascript (и, возможно, CSS-файлы) в вашей страницы и вызвать функцию автоматического обнаружения. Это будет искать страницы для всех полей ввода файлов AJAX и применять необходимую Javascript.
<Сценарий SRC = "{{}} STATIC_URL ajax_upload / JS / jquery.iframe-transport.js"> скрипт>
<Сценарий SRC = "{{}} STATIC_URL ajax_upload / JS / Ajax-загрузки-widget.js"> скрипт>
<Скрипт>
& NBSP; $ (функция () {
& NBSP; AjaxUploadWidget.autoDiscover ();
& NBSP;});
Скрипт>
Вы также можете передать параметры автообнаружения ():
<Скрипт>
& NBSP; $ (функция () {
& NBSP; AjaxUploadWidget.autoDiscover ({
& NBSP; changeButtonText: "Нажмите, чтобы изменить",
& NBSP; OnError: функция (данные) {Alert ("! Ошибка"); }
& NBSP; // см источник для полного списка опций
& NBSP;});
& NBSP;});
Скрипт>
ИЛИ ... Вы можете явно создать экземпляр AjaxUploadWidget на поле ввода файл AJAX:
<Ввод ID = имя = тип "Foo" "Foo" = "Файл" данных загрузки-URL = "/ Ajax-загрузка /" данных файла = "" данных требуется = "" />
<Скрипт>
& NBSP; новый AjaxUploadWidget ($ ('# Foo'), {
и NBSP; // варианты
& NBSP;});
Особенности
- заменой для Django встроенного в ClearableFileInput виджета (без изменений, необходимых для вашего модель).
- Работы на всех основных браузеров, включая IE 7 +.
- Случайные хэш строки добавляется к именам файлов, чтобы обеспечить загруженные пути к файлам не угадываемы другие.
Требования
- Python
- Джанго
Комментарии не найдены