wagtail def get_context and def serve



我可以在serve方法中添加一个页面的context,并在页面模板中获得上下文变量。我似乎不能添加到get_context的背景;或者,在页面模板中访问它。这把我难住了。

我想使用get_context函数向上下文添加一两个变量,并在页面模板中访问它们。

# If request.user is authenticated AND is registered for this event
# set that in the context
# ###---THIS DOES SEEM TO ADD TO CONTEXT, OR
# ###---IF IT DOES, THEN CANNOT ACCESS IT IN THE TEMPLATE--###
# def get_context(self, request, *args, **kwargs):
#     # pdb.set_trace()
#     context = super(EventPage, self).get_context(request, *args, **kwargs)
#     if request.user.is_authenticated:
#         # pdb.set_trace()
#         for attendee in self.event.eventattendee_set.all():
#             if attendee.email == request.user.email:
#                 # user is an attendee for this event
#                 context["is_attendee"] = True
#                 break
#     context["hello"] = "hello"
#     return context

您没有显示完整的页面模型定义,所以我假设它是EventPage。另外,上面的代码被注释掉了。它在文件中被注释掉了吗?这就解释了为什么你什么都得不到。此外,你不必做super(EventPage, self).get_context(request, *args, **kwargs)。你可以只做super().get_context(request, *args, **kwargs)(虽然你也应该工作)。

我使用模板中的pageself前缀通过get_context访问添加的上下文数据。这是行不通的——至少看起来行不通。直接访问上下文变量,不带前缀,这样就可以了。有时候,你只需要远离键盘。get_context的一切都很好。

最新更新