Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @@ customwidgets.py
- FROM django.forms.widgets import TextInput
- FROM django.forms.util import flatatt
- FROM django.utils.safestring import mark_safe
- class SliderWidget(TextInput):
- MAX = 100
- MIN = 0
- step = 10
- def __init__(self, MIN=None, MAX=None, step=None, attrs=None):
- super(SliderWidget, self).__init__(attrs)
- IF MAX:
- self.MAX = MAX
- IF MIN:
- self.MIN = MIN
- IF step:
- self.step = step
- def render(self, name, VALUE, attrs=None):
- attrs['type'] = 'hidden'
- final_attrs = self.build_attrs(attrs, name=name)
- slider_id, label_id = 'slider-'+name, 'label-'+name
- label = '<span class="sliderlabel" id="%s">!!</span>' % ('label-'+name)
- hidden_field = super(SliderWidget, self).render(name, VALUE, attrs)
- slider = """
- <div class="slider" id="%(slider_id)s"></div>
- <script type="text/javascript">
- $(function() {
- $('#%(slider_id)s').slider({
- min : %(min)s,
- max : %(max)s,
- step : %(step)s,
- change : function(event, ui) {
- $('#%(field_id)s').val($('#%(slider_id)s').slider('value'));
- $('#%(label_id)s').html($('#%(slider_id)s').slider('value'));
- }
- });
- });
- </script>
- """ % { 'slider_id' : slider_id, 'field_id' : name, 'min' : self.MIN, 'max' : self.MAX, 'step' : self.step, 'label_id' : label_id }
- RETURN mark_safe(hidden_field+label+slider)
- @@ eg IN a form
- FROM django import forms
- FROM dev.customwidgets.widgets import SliderWidget
- class SimpleForm(forms.Form):
- test = forms.CharField(widget=SliderWidget(MIN=200, MAX=250))
- another_slider = forms.IntegerField(widget=SliderWidget())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement