Login

MultiFileWidget

Author:
Digitalxero
Posted:
February 4, 2008
Language:
Python
Version:
.96
Score:
8 (after 8 ratings)

This is a multi file upload widget. That does not require adding multiple file input fields. It requires jQuery.MultiUpload (http://www.fyneworks.com/jquery/multiple-file-upload/)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
from django.newforms.widgets import Input

class MultiFileInput(Input):
    input_type = 'file'
    needs_multipart_form = True

    def render(self, name, value, attrs=None):
        if attrs is None:
            attrs = {}

        if attrs.has_key('class'):
            attrs['class'] += ' multi'
        else:
            attrs['class'] = 'multi'

        name += '[]'

        return super(MultiFileInput, self).render(name, None, attrs=attrs)

    def value_from_datadict(self, data, files, name):
        "File widgets take data from FILES, not POST"
        return files.get(name, None)

More like this

  1. New Snippet! by Antoliny0919 23 hours, 23 minutes ago
  2. Add Toggle Switch Widget to Django Forms by OgliariNatan 2 months, 2 weeks ago
  3. get_object_or_none by azwdevops 6 months, 1 week ago
  4. Mask sensitive data from logger by agusmakmun 8 months, 1 week ago
  5. Template tag - list punctuation for a list of items by shapiromatron 1 year, 10 months ago

Comments

David (on April 22, 2008):

Nice and useful widget, just what I was going to write myself. You saved me the trouble!

Why do you append "[]" to the end of the name though?

#

chester (on March 1, 2009):

Hi! I'm new to django, can you tell me how to use this snippet? I tried creating new form with MultiFileInput as a field but everytime I get error that no files were uploaded..

#

artur_mwaigaryan (on July 16, 2013):

just use HTML5's 'multiple' form attribute,no need for js:

<form action='#' method='post' enctype='multipart/form-data'> <input name='uploads[]' type=file multiple> <input type='submit'> </form>

That should fix it

#

Please login first before commenting.