Во-первых, атрибуты html хранятся в widget.attrs
, а не attr
.
Во-вторых, вы не можете объявить attrs = {'class': 'datetimepicker'}
в своем определении виджета, потому что метод __init__
перезапишет self.attrs
.
Вместо этого вы можете установить attrs
в методе __init__
.
Вот довольно наивная реализация. Возможно, вы захотите добавить некоторые дополнительные проверки, чтобы убедиться, что вы не перезаписываете какие-либо существующие элементы в kwargs['attrs']
. Обратите внимание, что мы взяли подкласс DateTimeInput
вместо TextInput
.
class DateTimeWidget(DateTimeInput):
def __init__(self, *args, **kwargs):
kwargs['attrs'] = {'class': 'datepicker'}
super(DatePickerWidget, self).__init__(*args, **kwargs)