2012-07-12 4 views
14

J'ai un plugin Django-CMS qui est utilisé pour afficher une liste d'objets. La fonctionnalité requise du plugin est que la liste est paginée et peut être réorganisée en fonction des propriétés des objets de la liste. La gestion de cette fonctionnalité avec ajax n'est pas une solution idéale dans ce cas particulier. J'envisageais d'utiliser django Paginator, qui nécessite un paramètre de requête querystring, et de passer un paramètre de commande querystring "order" que j'utiliserais ensuite pour définir l'ordre du jeu de requête.Comment accéder à l'objet request dans un plugin Django-CMS?

Le problème est que je ne vois pas comment accéder à l'objet de requête depuis la fonction de rendu des plugins.

Est-ce que quelqu'un sait s'il est possible d'accéder à l'objet de requête depuis la fonction de rendu, ou peut suggérer une solution de contournement?

Répondre

22

La méthode de rendu de CMSPluginBase prend un objet contexte. Vous devriez pouvoir accéder à la requête via cet objet si votre vue utilise une instance 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

Vous avez raison. Je suis un idiot. J'essayais d'y accéder en tant que context.request au lieu de context ['request']. Les vieilles habitudes ont la vie dure. –

Questions connexes