2012-02-12 38 views
0

我使用管理日历和时间部件在Django形式:description, how to use them时间输入格式在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 

它不工作,时间格式没有改变。哪里是错误...

+0

您可以包括'TimeInput的身体.__ init__'? – AdamKG 2012-02-12 14:45:29

+0

对不起,我现在包括它。 – 2012-02-12 15:32:11

+0

当你说“我需要%H:%S”时,你的意思是“我需要%H:%M”吗? – 2012-02-12 16:24:22

回答

0

这样来做:

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