from django import forms class ListTextWidget(forms.TextInput): def __init__(self, data_list, name, *args, **kwargs): super(ListTextWidget, self).__init__(*args, **kwargs) self._name = name self._list = data_list self.attrs.update({'list': 'list__{}'.format(self._name)}) def render(self, name, value, attrs=None, renderer=None): text_html = super(ListTextWidget, self).render(name, value, attrs=attrs) data_list = ''.format(self._name) for item in self._list: data_list += ''.format(item[0], item[1]) data_list += '' return text_html + data_list