2010-09-01 1 views
0

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

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

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

В моем preview_signup модуле (Джанго приложение) У меня есть следующий 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/ он работает отлично.

Что я делаю неправильно?

ответ

3

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

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

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

+0

DOH! Да, это работает. Спасибо миллион :) (я должен ждать 8 минут, пока не смогу принять) –

+0

@ Вадим Шендер +1 точно, что я искал – ravi404

1

Когда что-то пойдет не так (или даже если это не так), тщательно прочитайте 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-адреса, сопоставленного , до этой точки и отправляет оставшуюся строку включенному URL-адресу URLconf для дальнейшей обработки.

+1

Согласен, но я прочитал документы. Легко пропустить эти части, особенно когда на первый взгляд они выглядят как тот же код, который вы используете. Я, должно быть, прочел этот конкретный проход несколько раз, ища ответ. –