django multiple file uploader plugin AJAX (no flash)
JavaScript Python
Switch branches/tags
Nothing to show
Pull request Compare This branch is 2 commits ahead, 24 commits behind garmoncheg:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


Django Multiuploader Plugin

Readme for plugin of Django Multiuploader using jQuery Plugin by Sebastian Tschan(

This is a plugin, made using multiupload form from Sebastian Tschan.
It uses jQuey UI and jQuery instead of Flash uploader.
On Django side it uses sorl-thumbnails and PIL.
You can use it in your applications with simple inclusion tag


    - PIL(Python Imaging Library) (for sorl)
    - sorl-thumbnail's( (for thumbnails generation)
    - Django 1.2.5 +

Currently Tested full functionality under Chrome, Firefox and Safari.
Opera somehow fails to add multiple Photos.

Will try to fix them as soon as possible.

Example usage:

Adding this AJAX form to your web site is as simple, as adding this 2 tags to your template:

    {% load multiuploader %}
    {% multiupform %}

Also I've done a demo app repo here at my github.
It's called django_multiuploader_usage_demo.
For those who can not figure out this manual.) Also feel free to comment it on my
blog or send me a e-mail with your troubles/suggestions and usage experience...

1.Install an app. Do it by adding:


string to your -> INSTALLED_APPS = () dictionary.
Note that is has to have 'sorl.thumbnail', working already.

2.Register urls in your root urlconf adding string to your urlpatterns like so :

    url(r'', include('multiuploader.urls')),

3.Copy or symlink files from plugins "media/" directory to your MEDIA_ROOT.

4.Edit templates and styles to meet your needs. (Optional)
    (for e.g. changing the form design and/or behavior)


You can override plugin behavior by adding those settings to your root

*File delete url to use in your app. default value is 'multi_delete'

     MULTI_FILE_DELETE_URL = 'multi_delete'

*Url to show uploaded image, default is 'multi_image' + key to identify image (about 80 characters long):

     MULTI_IMAGE_URL = 'multi_image'

*Folder to store uploaded pictures inside your MEDIA_ROOT folder

     MULTI_IMAGES_FOLDER = 'multiuploader_images'

Model Usage:

Plugin stores Uploaded images to a simple model. It has some those fields:

* "MultiuploaderImage.filename" CharField to store original (uploaded) file filename
* "MultiuploaderImage.file" FileField to store file link to uploaded file in file system
* "MultiuploaderImage.key_data" CharField with randomly generated key to use in your model
* "MultiuploaderImage.upload_date" DateTimeField to store file upload data with auto now adding

You can use it directly in your code like so:
    def multi_show_uploaded(request, key):
        image = get_object_or_404(MultiuploaderImage, key_data=key)
        url =
        return render_to_response('multiuploader/one_image.html', {"multi_single_url":url,})
And then in template:

    <img src="{{ multi_single_url }}">

I will not stop on model usage here for long. Fell free to ask me any questions appeared...

Development plans:
 - Add a way to specify which model to use to store files.

See CHANGELOG file for additional changes upon versions.