2013-06-25 2 views
2

У моего urls.py файла в моей модели пользователей возникают проблемы. Когда я получить доступ к локальному: 5000/пользователям /, я дал ожидаемую страницу, но когда я иду на локальный хост: 5000/пользователи/1, я даюсь страницей, которая гласитПочему django не распознает мой url?

Page not found (404) 
Request Method:  GET 
Request URL: http://127.0.0.1:5000/users/1 

Using the URLconf defined in ng_blog.urls, Django tried these URL patterns, in this order: 

    ^users/$ 

Но мой urls.py кажется который будет определен соответствующим образом.

urlpatterns = patterns('', 
    url(
     r'^$', 
     UserList.as_view(), 
     name='user_list' 
    ), 
    url(
     r'^(?P<username>\w+)/$', 
     UserDetail.as_view(), 
     name='user_detail' 
    ), 
) 

Файл корень urls.py является

urlpatterns = patterns('', 
    url(r'^blog/$', include('blog.urls')), 
    url(r'^users/$', include('users.urls')), 
) 
+3

Вы можете показать исходный код пользователя url.py? Также вам нужен шаблон регулярного выражения в 'r '^ (? P )/$'' Что-то вроде: 'r '^ (? P \ w +)/$'' – karthikr

ответ

4

В вас корень urls.py, изменить

url(r'^users/$', include('users.urls')), 

в

url(r'^users/', include('users.urls')), 

$ означает конец шаблона URL. Отсюда и проблема.

Кроме того, изменение

r'^(?P<username>)/$', 

к

r'^(?P<username>\w+)/$', 
+1

Я просто хотел написать это;) +1 для вы! – ElmoVanKielmo

+0

Итак, регулярное выражение является продолжением с включенным файлом urls.py? – user1876508

+0

Да. .Это верно. – karthikr

1

Часть вашей проблемы в том, что вы определили свой user_detail вид только соответствуют URL-адресов, заканчивающихся с символа /, а затем не используется в вашем неудачный URL. И (как отмечали другие люди) ваш шаблон username фактически не соответствует никаким символам. Но из списка шаблонов, я подозреваю, что у вас могут быть другие проблемы в вашем файле ng_blog.urls.

1

Я думаю, вам нужно заменить (?P<username>) на (?P<username>[^/]+) (или какой-либо другой, соответствующий шаблон).

1

Try г '^ (? P \ d +)/$' вместо этого.

d + обеспечит соответствие 1 или более цифр.

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