Формат ввода времени в AdminTimeWidget в Django - PullRequest
0 голосов
/ 12 февраля 2012

Я использую календарь администратора и виджеты времени в форме django: описание, как их использовать

Но формат времени ввода виджета: "% H:% M:% S".Мне нужно "% H:% M".Вот мой код:

class CorporateOrderForm(ModelForm):
    class Meta:
        model=Order
        #exclude=('giving_address_comment','giving_address','comment')
    def __init__(self, *args, **kwargs):
        super(CorporateOrderForm, self).__init__(*args, **kwargs)
        self.fields['order_date'].widget = widgets.AdminDateWidget()
        self.fields['order_time'].widget = widgets.AdminTimeWidget(format='%H:%M')

Последняя строка важна: я пытаюсь изменить формат.Вот код AdminTimeWidget:

class AdminTimeWidget(forms.TimeInput):
    class Media:
        js = (settings.ADMIN_MEDIA_PREFIX + "js/calendar.js",
              settings.ADMIN_MEDIA_PREFIX + "js/admin/DateTimeShortcuts.js")

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

А вот код TimeInput:

class TimeInput(Input):
    input_type = 'text'
    format = '%H:%M:%S'     # '14:30:59'

    def __init__(self, attrs=None, format=None):
      super(TimeInput, self).__init__(attrs)
      if format:
          self.format = format
          self.manual_format = True
      else:
          self.format = formats.get_format('TIME_INPUT_FORMATS')[0]
          self.manual_format = False

Это не работает, формат времени не изменился.Где ошибка? ...

1 Ответ

0 голосов
/ 25 июня 2017

Сделайте так:

class CorporateOrderForm(ModelForm):
    class Meta:
        model=Order
        widgets = {
            'order_date': widgets.AdminDateWidget(),
            'order_time': widgets.AdminTimeWidget(format='%H:%M')
        }
...