2013-06-17 2 views
0

Итак, у меня есть простая домашняя страница проекта django, над которым я работаю. В верхнем левом углу находится логотип для сайта. В моем шаблоне, у меня есть этот код:URL-адрес главной страницы Django, отображаемый как другой URL-адрес

<a href="{% url "home" %}">Company Name</a>

В моем корневом urls.py, у меня есть это:

from django.conf.urls import patterns, include, url 
urlpatterns = patterns('', 
    url(r'^$', include('app.urls')),   # The main app 
    url(r'^login/$', include('app.urls')),  # The login page 
) 

и в моем приложении/urls.py у меня есть это:

from django.conf.urls import patterns, url 
from app import views 

urlpatterns = patterns('', 
     url(r'^$', views.index, name='home'),    # The homepage of the website 
     url(r'^login/$', views.loginView, name='login'), # The login page of the website 
) 

Теперь вы бы подумали (или, по крайней мере, я бы), что, когда страница индекса будет отображаться, она создаст html <a href="/">Company Name</a> или что-то подобное. Вместо этого я получаю <a href="/login/">Company Name</a>.

Итак, почему? Очевидно, это нежелательное поведение. Я почти уверен, что проблема заключается в настройке URL-адреса, но я могу ошибаться.

Пожалуйста, и большое спасибо

ответ

0

Вы в том числе те же URLpatterns дважды. Ваш основной urls.py должен быть только:

urlpatterns = patterns('', 
    url(r'', include('app.urls')), 
) 

Тогда ваши URL-адреса будут разрешены/отменены, как ожидалось.

+0

Это сделал это отлично! Спасибо миллион =) – dirtshell

0

Это происходит потому, что вы в том числе и тот же файл app.urlsпод двумя относительными путями, а именно / и /login. Итак, имя right имя пользователя только что переписано.

Чтобы избежать этого, не включайте один и тот же конфигурационный файл url под двумя относительными путями. Таким образом, в вашем случае, вы должны создать конфигурационный файл новый URL-адрес (например login.urls), перемещение Войти связанные определения URL-адрес для этого нового файла и заменить корневой URL-адрес конфигурации с

from django.conf.urls import patterns, url 
from app import views 

urlpatterns = patterns('', 
    url(r'^$', include('app.urls')),   # The main app 
    url(r'^login/$', include('login.urls')),  # The login page 
) 
Смежные вопросы