我正在Django写一个小应用程序来帮助我们的培训部门管理培训课程。我有一个名为Schedule的模型,它保存特定类的预定日期。
附表
class Schedule(models.Model):
scheduled_class = models.ForeignKey(ScheduledClass)
class_date = models.DateField()
start_time = models.TimeField()
end_time = models.TimeField(null=True, blank=True, default=None)
def __unicode__(self):
return unicode(self.class_date)
Schedule
对象与ScheduledClass
对象一起显示,以便用户可以在创建类时添加类日期。
我不喜欢默认TimeInput
窗口小部件的感觉,用户输入时间有点尴尬,因为需要在上午7点输入07:00:00
。
TimeInput
窗口小部件的右侧有一个包含以下内容的时钟图标:
Now
Midnight
6 AM
Noon
有没有办法指定不同的值?可能只有少数我感兴趣的值,例如07:00
,08:00
,12:00
,12:30
,16:00
,16:30
答案 0 :(得分:1)
您可以创建自己的小部件。或者其他解决方法是在静态文件中覆盖..输出文件:" admin / js / admin / DateTimeShortcuts.js" (覆盖/ http://d.pr/i/uXsL)并更改modifyDateTimeShortcut插件。在您的情况下,只需替换它:
quickElement("a", quickElement("li", time_list, ""), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("Midnight"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,0,0,0,0).strftime('" + time_format + "'));");
...
有关:
quickElement("a", quickElement("li", time_list, ""), gettext("Now"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date().strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("07:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,7,0,0,0).strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("12:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,12,0,0,0).strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("12:30"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,12,30,0,0).strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("16:00"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,16,0,0,0).strftime('" + time_format + "'));");
quickElement("a", quickElement("li", time_list, ""), gettext("16:30"), "href", "javascript:DateTimeShortcuts.handleClockQuicklink(" + num + ", new Date(1970,1,1,16,30,0,0).strftime('" + time_format + "'));");
...
结果:
这里有完整的代码:https://gist.github.com/hannicolas/8551106
Saludos。
答案 1 :(得分:0)
您可以避免使用窗口小部件,并使用choices参数使用简单的下拉列表,如下所示:
class Class(Model):
program = ForeignKey('Program')
time_of_the_day = TimeField(choices=(
(datetime.datetime.strptime('7:00 am', "%I:%M %p").time(), '7:00 am'),
(datetime.datetime.strptime('8:00 am', "%I:%M %p").time(), '8:00 am'),
(datetime.datetime.strptime('9:00 am', "%I:%M %p").time(), '9:00 am'),
(datetime.datetime.strptime('6:00 pm', "%I:%M %p").time(), '6:00 pm'),
(datetime.datetime.strptime('7:00 pm', "%I:%M %p").time(), '7:00 pm'),
(datetime.datetime.strptime('8:00 pm', "%I:%M %p").time(), '8:00 pm'),
(datetime.datetime.strptime('9:00 pm', "%I:%M %p").time(), '9:00 pm'),
))
希望这有帮助