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:
, 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.(?P<slug_categoria>[\w-]+)
Éstas son tres URL en mi archivo urls.py:
Código Python:
Ver original
url(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:
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-]+.categoria: /productos/baterias-acusticas etiqueta: /productos/set-de-bateria-acustica departamento: /productos/baterias-y-percusion
Para que funcionara cada URL, las configuré de esta manera:
Código:
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?etiqueta: /productos/etiqueta/set-de-bateria-acustica categoria: /productos/categoria/baterias-acusticas departamento: /productos/departamento/baterias-y-percusion
Un saludo :)