Переопределение admin_timewidget для другого input_type

#django

#django

Вопрос:

Если я выберу TimeInput класс по умолчанию, я смогу изменить тип ввода элемента, отображаемого в шаблоне, например:

 from django import forms

class TimeInput(forms.TimeInput):
    input_type = 'time'
 

Если я использую этот виджет, я получу <input type="time"> .

Однако, если я попытаюсь переопределить AdminTimeWidget , который также происходит от TimeInput , элемент отображается как <input type="text"> .

Пример:

 class AdminTimeWidget(forms.TimeInput):
    input_type = 'time'

    class Media:
        js = [
            'admin/js/calendar.js',
            'admin/js/admin/DateTimeShortcuts.js',
        ]

    def __init__(self, attrs=None, format=None):
        attrs = {'class': 'vTimeField', 'size': '8', **(attrs or {})}
        super().__init__(attrs=attrs, format=format)

class CountTimeForm(forms.Form):
    from_time = forms.TimeField(widget = AdminTimeWidget(), required=False)
 

Здесь from_time ввод будет отображаться как текстовый ввод… Как я могу это исправить, чтобы отображать как ввод времени?

Комментарии:

1. вы пытались переопределить AdminTimeWidget ? например: class MyAdminTimeWidget(AdminTimeWidget) ?

2. Это работает, но затем форма теряет дополнения из admin_timewidget. Например, кнопка «Сейчас» и часы.