#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. Например, кнопка «Сейчас» и часы.