2017-03-21 2 views
0

Ich habe ein Django-Projekt an dem ich arbeite, habe ich gemerkt, dass bestimmte URLs vom Server mit dem Fehler zurückgewiesen werden:Django lehnt bestimmten Slug URLs akzeptiert aber andere

NoReverseMatch: Reverse for 'mapView' with arguments '(u'intranet.hieta.biz',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'QMSv2/(?P[\w-]+)/$']

Die seltsame Sache, die ich nicht bekommen, darüber, dass die Hälfte der Seiten funktionieren und erreichbar sind, aber die anderen nicht. Sie alle teilen das gleiche Format, Datenbank, Ansicht, URL, Vorlage .. Ich kann keinen Unterschied erkennen. Dies ist die URL es versucht, es zu passen:

url(r'^(?P[\w-]+)/$', views.mapView, name="mapView")

Wenn jemand eine Idee hat, was könnte dazu führen, Django bestimmte Schnecken ablehnen und andere nicht, dann bitte mir jede Hilfe wissen lassen, ist immens geschätzt !!

Hinweis: Alle Seiten werden mit der gleichen Vorlage, URL und Ansicht gerendert. Die Schnecken befinden sich alle in derselben Datenbank und die Schnecken selbst werden alle aus derselben Funktion erzeugt.

Antwort

1

Ihre Gruppe [\w-]+ stimmt mit A-Z, a-z, 0-9, Unterstrichen und Bindestrichen überein, stimmt jedoch nicht mit den Zeiträumen . überein. Sie sollten es ändern in:

[\w.-]+ 
+0

danke eine Tonne! Irgendeine Idee, warum jede URL den gleichen Namen verwendet und nur einige von der Regex abgelehnt wurden? –

+0

Ich würde erwarten, dass Ihre alte URL für das Slug-Intranet funktioniert, aber nicht für "intranet.hieta.biz", da sie einen Punkt enthält. – Alasdair

+0

Ich glaube, du hast meine Frage falsch verstanden. Ich fragte, warum es die Hälfte der Nacktschnecken (alle mit der gleichen URL nur einen anderen/mein-Slug /) akzeptieren und die anderen ablehnen würde. Ich verstehe das "." die Ablehnung verursachen, aber warum kann sie die anderen akzeptieren? –