2012-07-12 34 views
14

我有一个用于显示对象列表的Django-CMS插件。插件所需的功能是列表分页,并且可以根据列表中对象的属性重新排序。如何访问Django-CMS插件中的请求对象?

用ajax处理这个功能在这种特殊情况下不是理想的解决方案,所以我打算使用django Paginator,它需要一个'page'querystring参数,并传递一个'order'querystring参数,然后我将使用它定义查询集的顺序。

问题是,我无法看到从插件渲染函数内部访问请求对象。

有谁知道是否有可能从渲染函数内访问请求对象,或者可以建议一种解决方法?

回答

22

CMSPluginBase的render方法需要一个上下文对象。如果您的视图使用RequestContext实例,则应该可以通过该对象访问请求。

class MyCoolPlugin(CMSPluginBase): 

    def render(self, context, instance, placeholder): 

     #Do something with the request, like access the user 
     current_user = context['request'].get('user', None) 
     ... 
+0

你说得对。我是个白痴。我试图作为context.request而不是context ['request']来访问它。旧习难改。 – 2012-07-13 18:40:35

相关问题