将条件过滤器添加到 ListView Django
Add conditional filter to ListView Django
我有活动清单。使用 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
您不能在 Django 过滤中使用模型函数。您应该使用 DateTimeField 将 event_date 和 event_time 存储在一个属性中。然后,在您的 ListView 中,覆盖 'get_queryset' 函数,如下所示:
def get_queryset(self):
return Event.objects.filter(event_datetime__gte=datetime.now())
我有活动清单。使用 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
您不能在 Django 过滤中使用模型函数。您应该使用 DateTimeField 将 event_date 和 event_time 存储在一个属性中。然后,在您的 ListView 中,覆盖 'get_queryset' 函数,如下所示:
def get_queryset(self):
return Event.objects.filter(event_datetime__gte=datetime.now())