Задать вопрос

Как переопределить template_names в виджете формы в Django 1.11?

Необходимо изменить отображение полей даты SelectDateWidget - обернуть поля year, month, day в теги div с разными классами. В django 1.10 это делалось через переопределение метода render с добавлением нескольких строк
output = []
    for field in self._parse_date_fmt():
        if field == 'year':
            output.append('<div class="input-field col s4">' + html['year'] + '</div>')
        elif field == 'month':
            output.append('<div class="input-field col s5">' + html['month'] + '</div>')
        elif field == 'day':
            output.append('<div class="input-field col s3">' + html['day'] + '</div>')
    return mark_safe('\n'.join(output))


В Django 1.11 этот способ не работает. Попытался переопределить template_name, но ничего не меняется.

widgets.py
class CustomDateWidget(SelectDateWidget):
    def get_template_names(self):
        return ['accounts/custom_select_date.html']
  • Вопрос задан
  • 334 просмотра
Подписаться 3 Оценить 4 комментария
Решения вопроса 1
@Chebaa Автор вопроса
Решение подсказал Дмитрий Бурнаев
SelectDateWidget.template_name = 'accounts/custom_select_date.html'
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы