{%URL%}标记出现问题

时间:2013-02-04 14:47:29

标签: django django-templates

我一直在尝试在我的Django应用程序中实现超链接,其中显示了一个项目列表,点击每个项目将带您到一个页面详细说明该项目的更多信息。

我一直在和{%URL%}标签搏斗,尽管在这里搜索了互联网和有关此事的书籍,我还没有让它发挥作用。

在views.py中:

def Link(request):
    return render_to_response('Search_Page.html')

在Urls.py中:

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'ParkManager.views.home', name='home'),
    # url(r'^ParkManager/', include('ParkManager.foo.urls')),
    url(r'^test/', Search_Page),
    url(r'^search/', Search),
    url(r'^details/', Details_Main),
    url(r'^Link/(d+}/$', Link),
    url(r'^$', 'Parks.views.Link', name="home"),

在我的模板中:

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

感谢您的时间:)

EDIT 错误:

页面加载但链接只带你到127 .0 .0 .1 / 8000 当我添加:test

我明白了:

NoReverseMatch at /search/
Reverse for 'name' with arguments '(u'North West Thrill Centre',)' and keyword arguments '{}' not found.


Request Method:

GET



Request URL:

http://127.0.0.1:8000/search/?search=a&type=parks&submit=Search



Django Version:

1.4.2



Exception Type:

NoReverseMatch



Exception Value:

Reverse for 'name' with arguments '(u'North West Thrill Centre',)' and keyword arguments '{}' not found. 


Exception Location:

C:\Python27\lib\site-packages\django\template\defaulttags.py in render, line 424



Python Executable:

C:\Python27\python.exe



Python Version:

2.7.3



Python Path:

['C:\\Users\\User\\Documents\\Django\\ParkManager',
 'C:\\Windows\\system32\\python27.zip',
 'C:\\Python27\\DLLs',
 'C:\\Python27\\lib',
 'C:\\Python27\\lib\\plat-win',
 'C:\\Python27\\lib\\lib-tk',
 'C:\\Python27',
 'C:\\Python27\\lib\\site-packages'] 


Server time:

Mon, 4 Feb 2013 16:05:30 +0000



Error during template rendering

In template C:\Users\User\Documents\Django\ParkManager\Templates\Details_Main.html, error at line 23

Reverse for 'name' with arguments '(u'North West Thrill Centre',)' and keyword arguments '{}' not found.

2 个答案:

答案 0 :(得分:4)

一条线索: 例外地点:
_compile中的C:\ Python27 \ lib \ re.py,第242行

您的问题与网址标记无关。它是urls.py中的一个格式错误的正则表达式。

urls.py

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'ParkManager.views.home', name='home'),
    # url(r'^ParkManager/', include('ParkManager.foo.urls')),
    url(r'^test/', Search_Page),
    url(r'^search/', Search),
    url(r'^details/', Details_Main),
    # LINE BELOW has an open parentheses and not a closed parentheses. 
    url(r'^Link/(d+}/$', Link), 
    #url(r'^Link/(d+)/$', Link), #line fixed 
    url(r'^$', 'Parks.views.Link', name="home"),

答案 1 :(得分:1)

不平衡的括号是这一行的问题:

url(r'^Link/(d+}/$', Link),

您忘记关闭括号。

如果您在Django中使用{%url%}标记&lt; 1.5,用这种方式:

{% load url from future %}

{% url 'namespace:viewname' arg1, arg2 %}
{% url 'namespace:viewname' kwarg1=val, kwarg2=val2 %}

如果您使用的是Django 1.5,则无需加载特殊的url标记。如果您没有使用名称空间(如果您使用列表,详细信息等常规视图名称,并希望区分应用程序,例如:author:list或book:list),则只使用视图名称。查看文档,有一个关于url标记的好部分 - https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url