2013-04-08 3 views
0

Может кто-нибудь объяснить, почему это работает:Django {% URL%} ведет себя странно

<li><a href="/index/">HOME</a></li> 
<li><a href="/project/">PROJECTS</a></li> 

Хотя это не делает:

<li><a href="{% url projects.views.index %}">HOME</a></li> 
<li><a href="{% url projects.views.project %}">PROJECTS</a></li> 

Я получаю ошибку 500 с ImportError в/индексе/Нет модуля с именем project, однако я не пытаюсь импортировать проект нигде. (Я импортирую проект, который импортирует штраф в течение нескольких дней, и отлично работает, когда я не использую ссылки стиля {% url%}). Я видел несколько ответов здесь и сообщения в блогах в другом месте, предполагая, что {% url%} - плохая идея. Я рад прекратить использовать их, если это необходимо, но для жизни меня не видно, откуда исходит ошибка.

Содержание urls.py

from django.conf.urls import patterns, include, url 
from django.conf import settings 

from django.views.static import * 

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

urlpatterns = patterns('', 
    url(r'^index/', 'projects.views.index', name='index'), 
    url(r'^login/', 'project.views.login', name='login'), 
    url(r'^project/(?P<project_id>\d+)/$', 'projects.views.project', name='project'), 
    url(r'^project/', 'projects.views.project', name='project'), 

    url(r'^sched/(?P<project_id>\d+)/$', 'projects.views.schedule'), 
    url(r'^luminaires/(?P<project_id>\d+)/$', 'projects.views.luminaires'), 
    url(r'^luminaire/(?P<project_id>\d+)/(?P<luminaire_id>\d+)/$', 'projects.views.luminaire'), 
    url(r'^deleteproject/(?P<project_id>\d+)/$', 'projects.views.deleteproject', name = 'deleteproject'), 


    url(r'^admin/', include(admin.site.urls)), 
    # Examples: 
    # url(r'^$', 'relume.views.home', name='home'), 
    # url(r'^relume/', include('relume.foo.urls')), 

    # Uncomment the admin/doc line below to enable admin documentation: 
    # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), 
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', {'document_root': settings.MEDIA_ROOT, 'show_indexes':True}), 
) 
+0

Вот URL-адрес: url (r '^ index /', 'projects.views.index', name = 'index'), – jford

+0

Попробуйте просто 'index' вместо' projects.views.index' там в URL-адресе в шаблоне. –

+0

Пробовал. Такая же ошибка. Использует ли только индекс, зависящий от наличия параметра name = 'index' в URL-адресе? – jford

ответ

4

После просмотра файла urls.py, кажется, у вас есть опечатка в строке Логина о адресов, где вы использовали project вместо projects.

Смежные вопросы