Кеширует ли Django шаблоны регулярных выражений URL-адресов? - PullRequest
4 голосов
/ 29 апреля 2010

Я новичок в Django, которому нужна помощь: несмотря на то, что я изменяю некоторые URL-адреса в своем urls.py, я продолжаю получать одно и то же сообщение об ошибке от Django.Вот соответствующая строка из моего settings.py:

ROOT_URLCONF = 'mydjango.urls'

Вот мой urls.py:

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
    # Example:
    # (r'^mydjango/', include('mydjango.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'
    # to INSTALLED_APPS to enable admin documentation:
    #(r'^admin/doc/', include(django.contrib.admindocs.urls)),

    # (r'^polls/', include('mydjango.polls.urls')),
    (r'^$', 'mydjango.polls.views.homepage'),
    (r'^polls/$', 'mydjango.polls.views.index'),
    (r'^polls/(?P<poll_id>\d+)/$', 'mydjango.polls.views.detail'),
    (r'^polls/(?P<poll_id>\d+)/results/$', 'mydjango.polls.views.results'),
    (r'^polls/(?P<poll_id>\d+)/vote/$', 'mydjango.polls.views.vote'),
    (r'^polls/randomTest1/', 'mydjango.polls.views.randomTest1'),
    (r'^admin/', include(admin.site.urls)),
)

Так что я ожидаю, что всякий раз, когда я посещаю http://mydjango.yafz.org/polls/randomTest1/Функция mydjango.polls.views.randomTest1 должна запускаться, потому что в моем polls / views.py у меня есть соответствующая функция:

def randomTest1(request):
    # mainText = request.POST['mainText']
    return HttpResponse("Default random test")

Однако я продолжаю получать следующее сообщение об ошибке:

Page not found (404)
Request Method:     GET
Request URL:    http://mydjango.yafz.org/polls/randomTest1

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

   1. ^$
   2. ^polls/$
   3. ^polls/(?P<poll_id>\d+)/$
   4. ^polls/(?P<poll_id>\d+)/results/$
   5. ^polls/(?P<poll_id>\d+)/vote/$
   6. ^admin/
   7. ^polls/randomTest/$

The current URL, polls/randomTest1, didn't match any of these.

Я удивлен, потому что снова и снова я проверяю urls.py, и в нем нет

 ^polls/randomTest/$

, но есть

 ^polls/randomTest1/'

Кажется, что Django как-то хранитпредыдущее содержимое urls.py и я просто не знаю, как сделать мои последние изменения эффективными.

Есть идеи?Почему я продолжаю видеть некоторые старые версии регулярных выражений, когда пытаюсь загрузить эту страницу, даже если я изменил свой urls.py?

1 Ответ

7 голосов
/ 29 апреля 2010

Django компилирует регулярные выражения URL при запуске по соображениям производительности - перезагрузите сервер, и вы увидите, что новый URL работает правильно.

...