如何在Django-CMS插件中访问请求对象?

时间:2012-07-12 19:13:18

标签: django plugins request django-cms paginator

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

在这种特殊情况下使用ajax处理此功能并不是一个理想的解决方案,因此我计划使用django Paginator,它需要一个'page'查询字符串参数,并传递一个'order'查询字符串参数,我将用它来定义查询集的顺序。

问题是我无法看到从插件渲染功能中访问请求对象。

是否有人知道是否可以从渲染功能中访问请求对象,或者可以建议解决方法?

1 个答案:

答案 0 :(得分:23)

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)
         ...