2016-11-17 6 views
1

Я пытаюсь соответствовать URL, как: /api/1.0/page/1Джанго Urls с точкой

У меня есть мой главный urls.py файл:

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

, а затем в моем api_v1/urls.py файле:

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

Я чувствую, что это должно быть просто, но я не могу заставить его работать.

+0

Шаблоны URL являются регулярными выражениями, поэтому вам придется избегать специальных символов регулярных выражений, таких как точка. Вместо этого попробуйте 'r '^ api/1 \ .0 /''. – Evert

+0

Возможно, вам стоит прочитать [документацию на языке Python по регулярным выражениям] (https://docs.python.org/3/library/re.html), в частности, какие специальные символы существуют. – Evert

+0

Я попытался убежать от точки @Evert (я достаточно хорош с регулярным выражением). Когда я убегаю, Django перечисляет URL-адреса в качестве '^ api/1 \ .0/^ page/(? P [0-9] {4}) /' (обратите внимание на пробел) – hammygoonan

ответ

2

Ваше регулярное выражение обеспечивает 4 символьных идентификатора страниц. Но ваш идентификатор страницы - всего лишь 1. Возможно, этот шаблон будет работать лучше:

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

Яйцо на лице. Вы на месте - я искал не то место. – hammygoonan

Смежные вопросы