Login

Select Dropdown Widget with jQueryUI

Author:
maguspk
Posted:
June 23, 2010
Language:
Python
Version:
1.2
Score:
0 (after 0 ratings)

This widget can be imported in your forms.py file and used like so:

formfield = forms.ModelChoiceField(widget=SelectDropdownWidget, queryset=Model.objects.all())

The javascript is provided by filament group's Scott and his jQueryUI Selectmenu. In addition to the javascript you will need jQuery (the latest release is fine) and jQuery UI. The convenient thing is that this widget will style to match whichever jQuery UI you've 'rolled' or selected, making it highly customizable!

Hopefully this helps others who wanted a nice widget with jQuery and were sad to find there were no nice default options, enjoy! :)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
class SelectDropdownWidget(forms.Select):
    class Media:
        css = {
            'all': (
                iasettings.MEDIA_URL + 'js/selectmenu/ui.selectmenu.css',
            )
        }
        js = (
            iasettings.MEDIA_URL + 'js/selectmenu/ui.selectmenu.js',
        )

    def __init__(self, language=None, attrs=None):
        self.language = language or settings.LANGUAGE_CODE[:2]
        super(SelectDropdownWidget, self).__init__(attrs=attrs)

    def render(self, name, value, attrs=None):
        rendered = super(SelectDropdownWidget, self).render(name, value, attrs)
        return rendered + mark_safe(u'''<script type="text/javascript">
            $(document).ready(function afterReady() {
                var elem = $('#id_%(name)s');
                elem.selectmenu();
            });
            </script>''' % {'name':name})

More like this

  1. Template tag - list punctuation for a list of items by shapiromatron 1 month, 2 weeks ago
  2. JSONRequestMiddleware adds a .json() method to your HttpRequests by cdcarter 1 month, 3 weeks ago
  3. Serializer factory with Django Rest Framework by julio 8 months, 3 weeks ago
  4. Image compression before saving the new model / work with JPG, PNG by Schleidens 9 months, 1 week ago
  5. Help text hyperlinks by sa2812 10 months, 1 week ago

Comments

Please login first before commenting.