2016-11-17 7 views
1

Ich versuche, eine URL zu passen wie: /api/1.0/page/1Django Urls mit einem Punkt

Ich habe meine Haupt urls.py Datei bekam:

urlpatterns = [ 
    url(r'^api/1.0/', include('api_v1.urls')), 
] 

und dann in meiner api_v1/urls.py Datei:

urlpatterns = [ 
    url(r'^page/(?P<page_id>[0-9]{4})/', views.page), 
] 

Ich denke, es sollte einfach sein, aber ich kann es nicht zur Arbeit bringen.

+0

Die URL-Muster sind Regexe, so dass Sie spezielle Regex-Zeichen wie den Punkt entkommen müssen. Versuchen Sie stattdessen 'r'^api/1 \ .0/''. – Evert

+0

Es lohnt sich vielleicht, die [Python-Dokumentation zu regulären Ausdrücken] (https://docs.python.org/3/library/re.html) zu lesen, insbesondere welche Sonderzeichen existieren. – Evert

+0

Ich habe versucht, den Punkt @Evert zu entkommen (ich bin ziemlich gut mit Regex). Wenn ich es entziehe, listet Django die URL-Muster auf als^^ api/1 \ .0/^ Seite/(? P [0-9] {4})/'(beachte den Raum) – hammygoonan

Antwort

2

Ihr Regex erzwingt 4-Zeichen-Seiten-IDs. Aber Ihre Seiten-ID ist nur 1. Vielleicht würde dieses Muster besser funktionieren:

r'^page/(?P<page_id>[0-9]+)/' 
+0

Ei auf meinem Gesicht. Du bist genau richtig - ich habe den falschen Ort gesucht. – hammygoonan