Django: ¿Cómo acceder a los parámetros de expresiones regulares de URL dentro de una clase de middleware?

Estoy trabajando en un proyecto Django en Google App Engine. Tengo una URL como:

http://localhost:8080/[company]/projects/project

Tenga en cuenta que [company] es un parámetro de URL definido en mi urls.py como:

(r'(^[a-zA-Z0-9-_.]*)/projects/project/(\d*)', 'projects.views.project_form'),

Quiero obtener el valor de [company] de un middleware donde estableceré el espacio de nombres del almacén de datos de GAE en el valor de [company] .

    ¿Es posible obtener el parámetro [company] del objeto de solicitud pasado en el método process_request de middleware class?

    Si está utilizando el middleware process_view , tendrá acceso a los argumentos de las vistas y, por lo tanto, al valor de la empresa. Echa un vistazo a la definición de la función:

     def process_view(self, request, view_func, view_args, view_kwargs) ... 

    view_args es una lista de argumentos posicionales que se pasarán a la vista, y view_kwargs es un diccionario de argumentos de palabras clave que se pasarán a la vista.

    así que deberías poder agarrarlo desde allí, algo como:

     def process_view(self, request, view_func, view_args, view_kwargs): company = view_kwargs.get('company', None) 

    Aquí hay más información del libro de django sobre cómo los grupos con nombre y sin nombre en sus direcciones URL se traducen a args y kwargs en su opinión:

    http://www.djangobook.com/en/1.0/chapter08/#cn38

    particularmente

    Este [grupo url denominado] logra exactamente lo mismo que en el ejemplo anterior, con una diferencia sutil: los valores capturados se pasan a las funciones de vista como argumentos de palabras clave en lugar de argumentos posicionales.