【问题标题】:Add conditional filter to ListView Django将条件过滤器添加到 ListView Django
【发布时间】:2017-05-06 03:44:39
【问题描述】:

我有事件列表。使用 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 django-views django-filter django-generic-views


    【解决方案1】:

    您不能在 Django 过滤中使用模型函数。您应该使用 DateTimeField 将 event_date 和 event_time 存储在一个属性中。然后,在您的 ListView 中,像这样覆盖“get_queryset”函数:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-22
      相关资源
      最近更新 更多