是否有一种方法我找不到在DateTimeField中获取不同的小时数?我基本上想要与.dates()提供完全相同的东西,但需要几个小时。
我应该澄清一下,我在谈论QuerySet方法。我正在谈论的date()方法在这里: http://docs.djangoproject.com/en/1.1/ref/models/querysets/#dates-field-kind-order-asc
如果没有,是否有推荐的已知解决方案?
感谢。
添加澄清: 我有一个名为Event的模型,其中有一个名为start_date的DateTimeField。我们需要知道某一天的哪个小时有活动。 假设我们将其缩小到特定月份:
objects = Event.objects.filter(start_date__year=2010, start_date__month=2)
现在,日期功能可以为我提供一个包含事件的所有日期的列表:
distinct_days = objects.dates('start_date', 'day')
我想要的是将它缩小到特定的一天,然后获得一个明确的当天的小时列表。
objects = Event.objects.filter(start_date__year=2010, start_date__month=2, start_date__day=3)
distinct_hours = objects.times('start_date', 'hour') # This command doesn't exist and am wondering how to do this
感谢。
答案 0 :(得分:2)
您想从datetime对象获取小时数吗?您的意思是.dates()
?
hour = instance.yourDateTimeField.hour
答案 1 :(得分:1)
不幸的是,目前没有一种好方法可以做到这一点,最好的方法是将一些原始SQL与extra()方法结合使用,然后调用distinct()。
答案 2 :(得分:1)
我已创建此代码以便手动执行此操作。
hours = []
for h in objects.values('start_date'):
hours.append(h['start_date'].hour)
tempdict = {}
for x in hours:
tempdict[x] = x
hours = tempdict.values()
hours.sort()
答案 3 :(得分:0)
简单解决方案:小时数可能存储在单独的字段中,unique=True
。