我找不到更新Wagtail CMS Page上下文的正确方法。
例如我有我的主页模型:
class HomePage(Page):
about = RichTextField(blank=True)
date = models.DateField(auto_now=True)
content_panels = Page.content_panels + [
FieldPanel('about', classname="full")
]
class Meta:
verbose_name = "Homepage"
我还希望在该页面上包含一些第三方信息。在我的情况下它的论坛。写一些ViewMixin会很棒,比如:
class ForumMixin(object):
pass
# add latest forums to context
我可以通过编写我的Django CBV来实现,但我真的想知道Wagtail Native Way。 谢谢!
答案 0 :(得分:13)
您可以通过覆盖页面模型上的get_context
方法来执行此操作:
class HomePage(Page):
def get_context(self, request):
context = super(HomePage, self).get_context(request)
context['forums'] = Forum.objects.all()
return context
这使得模板上的变量forums
可用。