Advertisement
Guest User

Untitled

a guest
Jun 16th, 2017
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. @@ customwidgets.py
  2.  
  3. FROM django.forms.widgets import TextInput
  4. FROM django.forms.util import flatatt
  5. FROM django.utils.safestring import mark_safe
  6.  
  7. class SliderWidget(TextInput):
  8.  
  9.     MAX = 100
  10.     MIN = 0
  11.     step = 10
  12.  
  13.     def __init__(self, MIN=None, MAX=None, step=None, attrs=None):
  14.         super(SliderWidget, self).__init__(attrs)
  15.         IF MAX:
  16.             self.MAX = MAX
  17.         IF MIN:
  18.             self.MIN = MIN
  19.         IF step:
  20.             self.step = step
  21.    
  22.     def render(self, name, VALUE, attrs=None):
  23.         attrs['type'] = 'hidden'
  24.         final_attrs = self.build_attrs(attrs, name=name)
  25.         slider_id, label_id = 'slider-'+name, 'label-'+name
  26.  
  27.         label = '<span class="sliderlabel" id="%s">!!</span>' % ('label-'+name)
  28.         hidden_field = super(SliderWidget, self).render(name, VALUE, attrs)
  29.         slider = """
  30.        <div class="slider" id="%(slider_id)s"></div>
  31.        <script type="text/javascript">
  32.        $(function() {
  33.            $('#%(slider_id)s').slider({
  34.                min : %(min)s,
  35.                max : %(max)s,
  36.                step : %(step)s,
  37.                change : function(event, ui) {
  38.                    $('#%(field_id)s').val($('#%(slider_id)s').slider('value'));
  39.                    $('#%(label_id)s').html($('#%(slider_id)s').slider('value'));
  40.                }
  41.            });
  42.        });
  43.        </script>
  44.        """ % { 'slider_id' : slider_id, 'field_id' : name, 'min' : self.MIN, 'max' : self.MAX, 'step' : self.step, 'label_id' : label_id }
  45.        
  46.         RETURN mark_safe(hidden_field+label+slider)
  47.  
  48.  
  49. @@ eg IN a form
  50.  
  51. FROM django import forms
  52. FROM dev.customwidgets.widgets import SliderWidget
  53.  
  54. class SimpleForm(forms.Form):
  55.     test = forms.CharField(widget=SliderWidget(MIN=200, MAX=250))
  56.     another_slider = forms.IntegerField(widget=SliderWidget())
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement