2015-11-20 51 views
1
class Event(models.Model): 
    name = models.CharField(max_length=255) 
    start = models.DateTimeField() 
    stop = models.DateTimeField() 

now = timezone.now() # 08:30 am 
qs = Event.objects.filter(start__gte=now) #but this exclude `event1` 

活動對象:如何獲取queryset中的當前事件?

name start    stop 
event1 20.11.2015 08:15 20.11.2015 09:30 
event2 20.11.2015 09:30 20.11.2015 10:25 

什麼是最好的方式得到活動,包括目前正在進行中?

+0

類似的問題http://stackoverflow.com/questions/11245483/django-filter-events-occurring-today –

+0

@Anush是的,但不包括小時 - 這對我來說很重要。 – user4812479812

回答

0

嘗試:

now = timezone.now() 
qs = Event.objects.filter(start__lte=now, end__gte=now) 
1

基於對Anush您的評論,你可能想嘗試以下方法:

now = timezone.now().date() 
qs = Event.objects.filter(
    start__year__lte=now.year, 
    start__month__lte=now.month, 
    start__day__lte=now.day, 
) 

不幸的是,當前穩定的Django版本(1.8)不提供能力截斷日期時間字段爲日期,這就是爲什麼您需要單獨指定年份,月份和日期。

本文寫作的最新開發版本(1.9)提供了__date lookup這應該解決這個問題。

相關問題