我可以在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)
(虽然你也应该工作)。
我使用模板中的page
或self
前缀通过get_context
访问添加的上下文数据。这是行不通的——至少看起来行不通。直接访问上下文变量,不带前缀,这样就可以了。有时候,你只需要远离键盘。get_context
的一切都很好。