Django не может маршрутизировать URL (простой вопрос) - PullRequest
0 голосов
/ 01 сентября 2010

Я делаю что-то глупое, и я не уверен, что это такое.У меня есть следующий urls.py в корне моего проекта django:

from django.conf.urls.defaults import *
from django.conf import settings

urlpatterns = patterns('',
    (r'^$', include('preview_signup.urls')),
)

В моем модуле preview_signup (приложение django) у меня есть следующий файл urls.py:

from django.conf.urls.defaults import *

urlpatterns = patterns('django.views.generic.simple',
    (r'^thanks/$', 'direct_to_template', {'template': 'thankyou.html'})
)

Приведенный выше urls.py не работает, когда я перехожу на http://localhost:8000/thanks/. Но если он меняется на это:

from django.conf.urls.defaults import *

urlpatterns = patterns('django.views.generic.simple',
    (r'^$', 'direct_to_template', {'template': 'thankyou.html'})
)

И я перехожу на http://localhost:8000/, он работает нормально.

Что я делаю не так?

Ответы [ 2 ]

3 голосов
/ 01 сентября 2010

Этот код должен работать:

urlpatterns = patterns('',
    (r'^', include('preview_signup.urls')),
)

$ (конец строки) только что удален.

1 голос
/ 01 сентября 2010

Если что-то идет не так (или даже если нет), внимательно прочитайте django docs .Вот выдержка из вышеупомянутой ссылки:

from django.conf.urls.defaults import *

urlpatterns = patterns('',
    (r'^weblog/',        include('django_website.apps.blog.urls.blog')),
    (r'^documentation/', include('django_website.apps.docs.urls.docs')),
    (r'^comments/',      include('django.contrib.comments.urls')),
)

Обратите внимание, что регулярные выражения в этом примере не имеют $ (символ совпадения конца строки), но включают косую черту.Всякий раз, когда Django встречает include (), он отсекает любую часть URL, совпадающую с этой точкой, и отправляет оставшуюся строку во включенный URLconf для дальнейшей обработки.

...