从Wigtail中的InlinePanel过滤项目

时间:2015-09-16 00:21:51

标签: wagtail

对于一小部分事件,我在页面模型中使用了InlinePanel。现在,我希望按日期过滤这些事件,就像使用带有子页@property的{​​{1}}一样,仅用于在页面date__gte=date.today()上显示未来事件。如何实现?

我的实施:

TourdatenIndexPag

可以在何处以及如何访问和过滤这些class EventItem(LinkFields): date = models.DateField("Datum") ... panels = [FieldPanel('date')] class Meta: abstract = True class TourdatenPageEventItem(Orderable, EventItem): page = ParentalKey('md.TourdatenIndexPage', related_name='event_items') class TourdatenIndexPage(Page): ... content_panels = Page.content_panels + [ InlinePanel('event_items', label="Events"), ]

1 个答案:

答案 0 :(得分:2)

在页面模型上创建一个方法以返回所需的查询集:

class TourdatenIndexPage(Page):
    def future_event_items(self):
        return self.event_items.filter(date__gte=date.today())

然后,在您的模板上,您可以参考self.future_event_items

{% for event in self.future_event_items %}
    <li>{{ event.date }}</li>
{% endfor %}