Валидация min и max не работает для пользовательских виджетов django
Я использую пользовательский виджет для отображения аддона через input-group в Bootstrap. Он отображается, но операции min-value и max-value работают некорректно и их сообщение не отображается.
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'))