向ListView Django添加条件过滤器

时间:2016-12-20 20:15:34

标签: django django-views django-filter django-generic-views

我有活动清单。使用ListView渲染它们。

在models.py

def event_date_time(self):
    event_date_time = datetime.combine(self.event_date, self.event_time)
    return event_date_time

ListView我也有now= datetime.utcnow()

需要在查询集中添加过滤器。

if now > event_date_time:
     #don't render that event
else:
     #render

1 个答案:

答案 0 :(得分:1)

您不能在Django过滤中使用模型函数。您应该使用DateTimeField将event_date和event_time存储在一个属性中。然后,在ListView中,覆盖'get_queryset'函数,如下所示:

def get_queryset(self):
    return Event.objects.filter(event_datetime__gte=datetime.now())