2017-02-10 3 views
0

ich folgende urlpatterns haben:Django RegexMuster passende

url(r'^api/daily-means/$', views.daily_means.as_view(), name='daily_means'), 
url(r'^api/daily-means/sites/(?P<url>\w+)/$', views.site_daily_means.as_view()), 
url(r'^api/daily-means/pollutant/(?P<poll>\w+)$/', views.pollutant_daily_means.as_view()), 

Die ersten beiden funktionieren. Die letzte Show funktioniert genauso wie die zweite, tut es aber nicht. Ich bin nicht so toll mit Regex und URL-Mustern, aber ich nehme an, dass es etwas mit dem zweiten URL-Muster gibt, das den letzten vom Laufen stoppt. Kann jemand anderes einen Grund dafür sehen?

+0

Können Sie die Test-URLs Sie haben für die 2. und 3. Muster versucht hinzufügen? –

+0

Entschuldigung, was meinst du mit Test-URLs? – Paulos

+0

Ja. URLs, die du getestet hast. –

Antwort

1

Django fügt den Ende-Schrägstrich an, falls dieser nicht angegeben ist. In Ihrer Regex passen Sie ohne den Endslash zusammen. url(r'^api/daily-means/pollutant/(?P<poll>\w+)$/', views.pollutant_daily_means.as_view()),

Das folgende URL-Muster sollte funktionieren (nachdem der End-Schrägstrich als Teil der URL-Übereinstimmung eingefügt wurde).

url(r'^api/daily-means/pollutant/(?P<poll>\w+)/$', views.pollutant_daily_means.as_view()),

+0

Danke für Ihre Hilfe. Ich wusste nicht, dass Django den End-Schrägstrich anhängen wird, so dass es nützlich war zu lernen. – Paulos