将修饰器应用于上下文处理器



我正在使用Fandjango作为Django Facebook Canvas应用程序。

要使用 fandjango,您需要用 @facebook_authorization_required 包装所有视图函数,以确保您获得授权,然后为您提供变量 request.facebook.user

想要的是制作一个上下文处理器,它基于此定义更多变量,即我希望我的所有模板都能够使用 fb_user 作为request.facebook.user的快捷方式。

问题是,我不知道如何使用上下文处理器上的装饰器。

任何想法我该怎么做?

无需包装上下文处理器。如果首先已包装视图,则request将已使用 facebook.user 属性进行批注。由于请求无论如何都会传递到上下文处理器,因此您可以访问该属性。

您可能应该在上下文处理器中快速检查 - if hasattr(request, 'facebook') - 只是为了确保从包装视图中调用它。

最新更新