Necesito obtener la plantilla uri original con expresiones regulares de la función de resolución en vista o middleware. Por ejemplo:

def view(request):
    uri_path = resolve(request...)
    # and uri_path must be equals something like 'articles/<int:year>/<int:month>/'
    ...

Es posible? No encontré información sobre esto

0
Bergutov Ruslan 17 ago. 2020 a las 08:07

2 respuestas

La mejor respuesta

Probablemente esté buscando PATH_INFO del objeto de solicitud.

Prueba esto -

request.META['PATH_INFO']

Puede buscar otra información presente a pedido META -

meta = request.META
for k, v in meta.items():
    print(f"{k}\t{v}")

Para obtener la ruta de resolución, intente a continuación:

from django.urls import resolve

r = resolve(request.META['PATH_INFO'])
print(r.route) # will print like /office/employee/<int:eid>

Doc

0
Ejaz 17 ago. 2020 a las 06:42

Entonces, encontré lo que estaba buscando - documentación. Pero el problema es que esta API es nueva en django 2.2, tengo un django más antiguo

0
Bergutov Ruslan 17 ago. 2020 a las 06:24