对于一小部分事件,我在页面模型中使用了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"),
]
?
答案 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 %}