Ich habe 2 URLs mit einem Slug-Feld in der URL.Regulärer Ausdruck in URL für Django Slug
url(r'^genres/(?P<slug>.+)/$', views.genre_view, name='genre_view'),
url(r'^genres/(?P<slug>.+)/monthly/$', views.genre_month, name='genre_month'),
Der erste öffnet in Ordnung, aber die zweite gibt einen DoesNotExist
Fehler sagen Genres matching query does not exist
.
Hier ist, wie ich die zweite URL in meinem HTML-bin Zugriff
<li><a href="{% url 'genre_month' slug=genre.slug %}">Monthly Top Songs</a></li>
Ich versuchte, die Schnecke in der Ansicht zu drucken. Es wird als genre_name/monthly
anstelle von genre_name
übergeben.
Ich denke, das Problem ist mit der Regex in den URLs. Irgendeine Idee, was hier falsch ist?
Eine Sache zu prüfen, ist eine sinnvolle Begrenzung für die Anzahl der Zeichen mit eher entsprechen als '+' Überlauf-Attacken zu vermeiden, zum Beispiel '(P [- \ w? ] {1,255}) '. Sie können sogar das Minimum auf diese Weise erhöhen, wenn Sie weiter einschränken wollen, was Sie wollen und was nicht. –
Tom