2012-07-12 7 views
14

Ho un plugin per Django-CMS che viene utilizzato per visualizzare un elenco di oggetti. La funzionalità richiesta del plug-in è che l'elenco è impaginato e può essere riordinato in base alle proprietà degli oggetti nell'elenco.Come accedere all'oggetto richiesta in un plug-in Django-CMS?

Gestire questa funzionalità con ajax non è una soluzione ideale in questo caso particolare, quindi stavo pianificando di utilizzare django Paginator, che richiede un parametro querystring di "pagina" e il passaggio di un parametro querystring "order" che utilizzerei per definire l'ordine del queryset.

Il problema è che non riesco a vedere comunque di accedere all'oggetto richiesta dall'interno della funzione di rendering dei plugin.

Qualcuno sa se è possibile accedere all'oggetto richiesta dall'interno della funzione di rendering o può suggerire una soluzione alternativa?

risposta

22

Il metodo di rendering di CMSPluginBase accetta un oggetto di contesto. Dovresti essere in grado di accedere alla richiesta tramite quell'oggetto se la tua vista utilizza un'istanza 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

Hai ragione. Sono un idiota. Stavo cercando di accedervi come context.request invece di context ['request']. Le vecchie abitudini sono dure a morire. –

Problemi correlati