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; клас Meta:
І NBSP; Модель = MyModel
і NBSP; віджетів = {
І NBSP; 'my_image_field': AjaxClearableFileInput
І NBSP;}
Клієнтська сторона
Увімкніть JavaScript (і, можливо, CSS-файли) можна на сторінці і викликати функцію автоматичного виявлення. Це буде шукати сторінку для всіх полів введення імені файлу AJAX і застосовувати необхідну Javascript.
<Посилання HREF = "{{STATIC_URL}} ajax_upload / CSS / AJAX-завантаження-widget.css" REL = "стилів" Тип = "текст / CSS" />
<Сценарій SRC = "{{STATIC_URL}} ajax_upload / JS / jquery.iframe-transport.js">
<Сценарій SRC = "{{STATIC_URL}} ajax_upload / JS / AJAX-завантаження-widget.js">
<Скрипт>
І NBSP; $ (функція () {
І NBSP; AjaxUploadWidget.autoDiscover ();
І NBSP;});
Ви також можете передати параметри AUTODISCOVER ():
<Скрипт>
І 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
- Django
Коментар не знайдено