3

对于我InlinePanel在页面模型中使用的一小部分事件列表。现在我想按日期过滤这些事件,就像我在使用@propertywith subpages: date__gte=date.today()for only display the future events on the page时所做的那样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"),
    ]

在哪里以及如何event_items访问和过滤这些内容?

4

1 回答 1

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 %}
于 2015-09-17T23:36:40.077 回答