Este problema parece simple y se describe varias veces en SO, pero todavía no puedo entender por qué no funciona en mi caso.
Entonces, tengo un url declarado en urls.py
urlpatterns = patterns("",
url(r"^(?P<country>[-w]+)/$", CountryListView.as_view(), name="list_by_country"),)
y en mi modelo Estoy llamando a la url
<a href="{% url "list_by_country" country.country__name %}" >{{ country.country__name }}</a>
Sin embargo, estoy recibiendo la mensaje de error que la url no podía ser invertida
Reverse for "list_by_country" with arguments "(u"United Kingdom",)" and keyword arguments "{}" not found
¿Qué está causando el error inverso? ¿Los espacios en el argumento tal vez no están permitidos?
Respuestas
4 para la respuesta № 1El problema es que "Reino Unido" no coincide con la expresión regular [-w]+
. Si también desea emparejar espacios, debe cambiar su expresión regular a [-w ]+
. Ejemplo:
url(r"^(?P<country>[-w ]+)/$", CountryListView.as_view(), name="list_by_country")
También puede optar por emparejar s
en lugar de un solo carácter de espacio.