django-file-form 0.1.6

Django-file-form helps you to write forms with a pretty ajax upload

Django-file-form helps you to write forms with a pretty ajax upload.

Features:

  • You can easily add an ajax file-upload to a form.
  • The ajax upload works the same as an html upload.
    • This means that you don't have to change your code to support ajax upload.
  • Supports single and multiple file upload.

The project is hosted on github.

Works with Django 1.4 - 1.8.

Usage

1 Install django-file-form

pip install django-file-form

2 Add the apps to your INSTALLED_APPS

You must include 'django_file_form' and 'django_file_form.ajaxuploader'

INSTALLED_APPS = [
    'django_file_form',
    'django_file_form.ajaxuploader',
]

3 Add the app to your urls

In this example we use the url upload/. You can use a different url if you like.

urlpatterns = patterns(
    '',
    url(r'^upload/', include('django_file_form.urls')),
)

4 Add FileFormMixin to your form

from django_file_form.forms import FileFormMixin

class ExampleForm(FileFormMixin, forms.Form):
    pass

5 Add a UploadedFileField

from django_file_form.forms import FileFormMixin, UploadedFileField

class ExampleForm(FileFormMixin, forms.Form):
    input_file = UploadedFileField()

6 Include javascript and css in your template

<script src="{% static "ajaxuploader/js/fileuploader.js" %}"></script>
<script src="{% static "file_form/file_form.js" %}"></script>
<link rel="stylesheet" href="{% static "ajaxuploader/css/fileuploader.css" %}">

You must also include jquery

7 Call the initUploadFields javascript function

<form id="example-form" method="POST" enctype="multipart/form-data">
    {% csrf_token %}
    {{ form }}
</form>

<script>
   $(function() {
       initUploadFields($('#example-form'));
   });
</script>

8 Include the upload_template.html in your template

{% include 'django_file_form/upload_template.html' %}

9 Handle uploaded files

class ExampleFormView(generic.FormView):
    template_name = 'example_form.html'
    form_class = forms.ExampleForm

    def form_valid(self, form):
        input_file = form.cleaned_data['input_file']

        return super(ExampleFormView, self).form_valid(form)

10 Delete temporary files

class ExampleFormView(generic.FormView):
    template_name = 'example_form.html'
    form_class = forms.ExampleForm

    def form_valid(self, form):
        input_file = form.cleaned_data['input_file']

        self.delete_temporary_files()

        return super(ExampleFormView, self).form_valid(form)

Also see the testproject in the repository.

Apache License, Version 2.0

Author

Marco Braak

Pip

django-file-form==0.1.6

Classifiers

  • Development Status :: 5 - Production/Stable
  • Framework :: Django
  • Intended Audience :: Developers
  • Programming Language :: Python :: 2.6
  • Programming Language :: Python :: 2.7
  • Programming Language :: Python :: 3.3
  • Programming Language :: Python :: 3.4
  • License :: OSI Approved :: Apache Software License
  • Programming Language :: Python :: Implementation :: CPython
  • Programming Language :: Python :: Implementation :: PyPy
File Type Python Version Uploaded On Downloads
django_file_form-0.1.6-py2.7.egg Egg 2.7 April 2, 2015 567
django_file_form-0.1.6-py2-none-any.whl Wheel 2.7 April 2, 2015 570
django-file-form-0.1.6.tar.gz Source April 2, 2015 1,197
Version Release Date
0.1.6 April 2, 2015
0.1.5 Sept. 9, 2014
0.1.4.5 Oct. 10, 2013
0.1.4.4 Sept. 23, 2013
0.1.4.3 Sept. 23, 2013
0.1.4 May 24, 2013
0.1.3 Aug. 24, 2015
Date Package Version Action
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.6 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.5 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.4 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.4.3 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.4.5 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.4.4 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form 0.1.3 Release Created
Aug. 24, 2015, 11:02 p.m. django-file-form Package Created