/ / Django: Reverse nicht gefunden> {% url%} in Vorlage - django, url, arguments, reverse

Django: Umgekehrt nicht gefunden> {% url%} in Vorlage - django, url, arguments, reverse

Dieses Problem scheint einfach zu sein und wird in SO mehrfach beschrieben, aber ich kann immer noch nicht herausfinden, warum es in meinem Fall nicht funktioniert.

Also, ich habe eine URL in deklariert urls.py

urlpatterns = patterns("",
url(r"^(?P<country>[-w]+)/$", CountryListView.as_view(), name="list_by_country"),)

und in meinem Vorlage Ich rufe die URL an

<a href="{% url "list_by_country" country.country__name %}" >{{ country.country__name }}</a>

Ich bekomme jedoch die Fehlermeldung dass die URL nicht umgekehrt werden konnte

Reverse for "list_by_country" with arguments "(u"United Kingdom",)" and keyword arguments "{}" not found

Was verursacht den umgekehrten Fehler? Sind Leerzeichen im Argument möglicherweise nicht erlaubt?


Antworten:

4 für die Antwort № 1

Das Problem ist, dass "Vereinigtes Königreich" nicht mit der Regex übereinstimmt [-w]+. Wenn Sie auch Leerzeichen zuordnen möchten, sollten Sie Ihre Regex auf ändern [-w ]+. Beispiel:

url(r"^(?P<country>[-w ]+)/$", CountryListView.as_view(), name="list_by_country")

Sie können auch wählen, dass Sie übereinstimmen s anstatt nur ein Leerzeichen.