-1

我一直在尝试在我的 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>

谢谢你的时间 :)

编辑错误:

页面加载,但是当我添加时,链接仅将您带到 127 .0 .0 .1 /8000:测试

我得到:

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.
4

2 回答 2

4

一条线索:异常位置:
_compile 中的 C:\Python27\lib\re.py,第 242 行

您的问题与 url 标签无关。它是您的 urls.py 中格式错误的正则表达式。

网址.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"),
于 2013-02-04T15:44:33.473 回答
1

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

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

您忘记关闭括号。

如果您在 Django < 1.5 中使用 {% url %} 标记,请以这种方式使用它:

{% load url from future %}

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

如果您使用的是 Django 1.5,则不必加载特殊的 url 标签。如果您不使用命名空间(如果您使用的是列表、详细信息等通用视图名称,并且您想区分应用程序,例如:作者:列表或书籍:列表),则仅使用视图名称。检查文档,关于 url 标签有一个很好的部分 - https://docs.djangoproject.com/en/1.4/ref/templates/builtins/#url

于 2013-02-04T15:51:36.810 回答