2012-03-06 6 views
5

En mi configuración de URL, tengo varias URL que tienen el mismo parámetro con nombre, user_id. ¿Es posible acceder a este parámetro en un middleware, así que puedo pasarlo genéricamente a context_data o en la plantilla misma?Acceda al parámetro URL nombrado en Plantilla o Middleware

URL de ejemplo conf para ilustrar la cuestión:

url(r'^b/(?P<user_id>[0-9]+)/edit?$', user.edit.EditUser.as_view(), name='user_edit'), 
url(r'^b/(?P<user_id>[0-9]+)/delete?$', user.delete.DeleteUser.as_view(), name='user_delete') 

Respuesta

5

Si necesita estos datos en la plantilla, simplemente anular get_context_data método de su punto de vista:

class MyView(View): 
    def get_context_data(self, **kwargs): 
     context = super(MyView, self).get_context_data(**kwargs) 
     context['user_id'] = self.kwargs.get('user_id') 
     return context 
0

Para las vistas base de clase, la view es ya disponible en el contexto, por lo que no necesita hacer nada en el lado de la vista. En la plantilla, simplemente haga lo siguiente:

{{ view.kwargs.user_id }} 

Ver this respuesta

Cuestiones relacionadas