Validation of min and max doesn't work for custom widgets of django

24 Views Asked by At

I use a custom widget to show addon through the input-group of Bootstrap. It is shown but min-value and max-value operation don't work correctly and their message doesn't display.

class PrependWidget(Widget):

def __init__(self, base_widget, data, *args, **kwargs):
    u"""Initialise widget and get base instance"""
    super(PrependWidget, self).__init__(*args, **kwargs)
    self.base_widget = base_widget(*args, **kwargs)
    self.data = data

def render(self, name, value, attrs=None, renderer=None):
    u"""Render base widget and add bootstrap spans"""
    field = self.base_widget.render(name, value, attrs)
    return mark_safe((
                         u'<div class="input-group mb-3">'
                         u'  <div class="input-group-prepend">'
                         u'    <span class="input-group-text" id="addon_{name}" value="{value}">%(data)s</span>'
                         u'  </div>'
                         u'<input type="text" class="form-control" id="id_{name}"  name="{name}"  {attrs} '
                         u'aria-describedby="addon_{name}"> '
                         u'</div>'.format(name=name, value=value, attrs=attrs or '')
                     ) % {'field': field, 'data': self.data})



hard = forms.IntegerField(min_value=0, max_value=20, required=False,
                               widget=PrependWidget(base_widget=forms.NumberInput, data='GB'))
0

There are 0 best solutions below