2016-12-20 8 views
1

У меня есть список событий. Использование ListView для их рендеринга.Добавить условный фильтр в ListView Django

В 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()

нужно добавить фильтр QuerySet.

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

ответ

1

Вы не можете использовать функцию модели в фильтрации Django. Вы должны использовать DateTimeField для хранения event_date и event_time по одному атрибуту. Затем в вашем ListView переопределите функцию get_queryset следующим образом:

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