#python #django
#python #django
Вопрос:
Работа с Python 2.7 и Django 1.1.
Пытаясь заставить этот код из «Написания вашего первого приложения Django» работать, я понятия не имею, что я делаю не так.
pollsurls.py:
from django.conf.urls import url
from . import views
urlpatterns = [
url(r'^', views.index, name='index'),
url(r'^<int:question_id>/$', views.detail, name='detail'),
url(r'^<int:question_id>/results/$', views.results, name='results'),
url(r'^<int:question_id>/vote/$', views.vote, name='vote'),
]
mysiteurls.py:
from django.contrib import admin
from django.conf.urls import url, include
urlpatterns = [
url(r'^polls/', include('polls.urls')),
url(r'^admin/', admin.site.urls),
]
Пожалуйста, дайте мне знать, если мне не хватает какого-либо необходимого кода для предоставления контекста?
Комментарии:
1. Вам действительно следует отойти от Django 1.x, он уже некоторое время не поддерживается.
Ответ №1:
В django 1.11 url(r'^', views.index, name='index'),
соответствует любому URL-адресу, который содержит регулярное выражение ^
(т.Е. Начало строки). Поскольку любая строка содержит начало, это будет соответствовать каждой строке.
Вы можете либо перейти '^'
к концу, чтобы он соответствовал только URL-адресам, которые не соответствуют никакому другому пути, либо использовать '^$'
(т. Е. Начало строки, за которым сразу следует конец строки), чтобы избежать совпадения путей, которые вы не хотите сопоставлять.