Hola a todos.
Soy un novato en Django y Python, ayer me encontré con este problema:
Tengo varias URL con formato de slugs, pero el patrón de la expresión regular que utilizo,
Código:
(?P<slug_categoria>[\w-]+)
, causa conflicto cuando tengo más de una url. El navegador no sabe a cuál de todas las URL registradas debe enviar la petición (bueno, en realidad toma el primer elemento que coincida con el patrón), porque realmente todas aceptan el mismo formato.
Éstas son tres URL en mi archivo urls.py:
Código Python:
Ver originalurl(r'^(?p<slug_etiqueta>[\w-]+)/$', views.categoria, 'name=categoria'),
url(r'^(?p<slug_categoria>[\w-]+)/$', views.categoria, 'name=categoria'),
url(r'^(?p<slug_depto>[\w-]+)/$', views.departamento, 'name=departamento'),
Me gustaría que mis URL quedaran en este formato:
Código:
categoria: /productos/baterias-acusticas
etiqueta: /productos/set-de-bateria-acustica
departamento: /productos/baterias-y-percusion
Pero cuando se envía la petición, la URL que recibe
slug_etiqueta es la primera que se llama, porque es la primera que coincide con el patrón
[\w-]+.
Para que funcionara cada URL, las configuré de esta manera:
Código:
etiqueta: /productos/etiqueta/set-de-bateria-acustica
categoria: /productos/categoria/baterias-acusticas
departamento: /productos/departamento/baterias-y-percusion
Pero francamento quisiera evitar ese espacio extra, porque me gusta mucho cómo lucen en la primera forma. De cualquier manera este problema creo que va a volverme a pasar porque suena muy común. ¿Alguno de ustedes ha psado por esto? ¿Cómo pudo solucionarlo?
Un saludo :)