我正在使用Fandjango作为Django Facebook Canvas应用程序。
要使用fandjango,您需要使用@facebook_authorization_required
包装所有视图函数,以确保您已获得授权,然后为您提供变量request.facebook.user
。
我想要的是是建立一个上下文处理器,根据这个定义更多变量,即我希望我的所有模板能够使用fb_user
作为快捷方式request.facebook.user
。
问题是,我不知道如何在上下文处理器上使用装饰器。
我有什么想法可以做到这一点吗?
答案 0 :(得分:3)
不需要包装上下文处理器。如果您首先包装了视图,则request
已经使用facebook.user
属性进行了注释。由于请求仍然传递给上下文处理器,因此您可以访问该属性。
您应该在上下文处理器中快速检查 - if hasattr(request, 'facebook')
,以确保从包装视图中调用它。