Skip to main content

Progress bar upload for Django

Project description


[![Build Status](](

django-progressbarupload is a simple Django application that instantiates an HTML5 upload progress bar when the user submit a form with files (a form having basically FileField(s) and/or ImageField(s), and an enctype="multipart/form-data").


Quick start

Requirements :
* Django 1.4.3 (tested).
* django.contrib.staticfiles app to serve static files

1. Install the app

pypi version

pip install django-progressbarupload

development version

pip install -e git+

2. Add progressbarupload to your INSTALLED_APPS in your settings

INSTALLED_APPS += ('progressbarupload', )

3. Add "progressbarupload.uploadhandler.ProgressBarUploadHandler" to your FILE_UPLOAD_HANDLERS setting


4. Include the progressbarupload URLconf in your project

(r'^progressbarupload/', include('progressbarupload.urls')),


### ModelAdmin

Set the ```change_form_template``` and ```add_form_template``` attributes in your ModelAdmin to 'progressbarupload/change_form.html'.

from django.contrib import admin
from my_awesome_app.models import MyAwesomeModelWithFiles

class MyAwesomeModelWithFiles(admin.ModelAdmin):
change_form_template = 'progressbarupload/change_form.html'
add_form_template = 'progressbarupload/change_form.html', UploadFileModelAdmin)

### Form and ModelForm

To use a progress bar in your custom ModelForm or Form, load the progress_bar template tag set ```{% load progress_bar %}``` in the template, and use the following template tags ```{% progress_bar_media %}``` between <head> tags to load javascript files and ```{% progress_bar %}``` where you and to display the progress bar.

{% load progress_bar %}

<!DOCTYPE html>
{% progress_bar_media %}

<form enctype="multipart/form-data" method="post" action=".">
{% csrf_token %}
{{ form }}
{% progress_bar %}
<input type="submit" />

Further information

Make sure your browser renders HTML5 ```<progress>``` tag and uses data-* attribute (IE>10, FF>6.0, Chrome>8.0, Opera>11.0).

As Django has a unique TemporaryFileUploadHandler for all request.FILES. For ModelAdmin, if you have related models, using TabularInline, the upload progress will also be shown in the admin add/change form as soon as you use the right templates in your ModelAdmin (and even if your ModelAdmin doesn't contain any file upload).

Custom TemporaryFileUploadHandler copied from

Launch tests

It assumes you have installed virtualenvwrapper (

# get the application code
git clone
cd django-progressbarupload
# create a virtualenv
mkvirtualenv progressbarupload
add2virtualenv .
# install requirements for tests and django (set the django version you want to use)
pip install -r requirements/tests.txt django==1.4.3
# launch tests test --settings=progressbarupload.test_settings progressbarupload

Project details

Release history Release notifications

History Node


History Node


This version
History Node


History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-progressbarupload-0.1.5.macosx-10.4-x86_64.exe (74.4 kB) Copy SHA256 hash SHA256 Windows Installer any Feb 4, 2013
django-progressbarupload-0.1.5.tar.gz (20.9 kB) Copy SHA256 hash SHA256 Source None Feb 4, 2013

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page