2013-02-14 69 views
1

我有這樣允許HH:MM在Django DateTimeField字段類型的輸入,而不是長格式

class Timer(models.Model): 
"""Represents a timing system""" 

    start_time = models.DateTimeField(default=datetime.datetime.now()) 
    end_time = models.DateTimeField() 

並以此爲模型

class JobForm(forms.ModelForm): 

    class Meta: 
     exclude = ['slug','author','duration',] 
     model = Job 

麻煩進來形狀的模型當我想添加一些時間的信息,並通過我的意思是我在

DD-MM-YYYY HH:MM:SS 

的時間將被添加我的長格式輸入該N作爲他們碰巧在同一天實時的,所以長格式看起來像費工夫,我寧願做它作爲

HH:MM 

我不能使用model.TimeField,因爲我將計算開始之間的時間時間和結束時間,有人可能通過計時睡眠跨過午夜或誰知道還有什麼。 我如何允許在HH:MM中輸入並將其作爲datetimefield(經過一番努力後最終)?編號喜歡代碼假定當前日期相同的日期給HH:MM

+0

您可能正在尋找的東西是這樣的:HTTP://stackoverflow.com/questions/9954498/django-datefield-and-timefield-to-python-datetime – cclerville 2013-02-14 21:00:40

+0

刪除'default = datetime.datetime.now()'中的括號,並嘗試更改[DateTimeInput小部件]的[format]選項(https://docs.djangoproject.com/en/dev/ref/forms/ widgets /#datetimeinput)else [make your own widget](https://docs.djangoproject.com/en/dev/ref/forms/widgets/)。對不起,但我沒有更多時間... – jpic 2013-02-14 21:01:25

+1

示例HH:MM:SS小部件和字段 - http://stackoverflow.com/questions/13824266/django-custom-widget-to-split-an-integerfield-into -hours和 - 秒場-IN-A/13825412#13825412 – 2013-02-14 22:09:46

回答

1

在看錶格文檔後,這是iv決定做的,因爲我不明白@ cclerville的建議(也許django是窮人?) 這裏有雲: 我forms.py

class MyDateTimeField(forms.Field): 

    def to_python(self, value): 
     # Return an empty list if no input was given. 
     if not value: 
      return [] 
     import datetime 
     today = datetime.date.today() 
     hhmm = value.split(':') 
     val= datetime.datetime.combine(datetime.date.today(), datetime.time(int(hhmm[0]),int(hhmm[1]))) 
     return val 

和形式本身:

class JobForm(forms.ModelForm): 
    end_time = MyDateTimeField() 
相關問題