2011-11-23 54 views
3

我想我需要第二双眼睛。Django网址 - 无法在模板中反转网址

下面的例子应该是自我解释。

我需要的是能够在模板中反转我的网址。

/urls.py

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

/products/urls.py

from django.conf.urls.defaults import patterns, url 

urlpatterns = patterns('products.views', 
    url(r'^$', view="index", name="index"), 
) 

/templates/products/index.html

<a href="{% url products:index %}"> Products </a> 

UPDATE

全堆栈跟踪 - http://pastebin.com/9nLp4uP5

回答

5

你可能反而试试这个:

urlpatterns = patterns('products.views', 
    url(r'^$', view="index", name="products_index"), 
) 

/templates/products/index.html

<a href="{% url products_index %}"> Products </a> 

要不是有你想你的命名空间URL的令人信服的理由,这是更简单的方法是在urls.py中使用更精确的名称,然后在url模板标记中使用该名称。

更新

如果你得到的错误是No module named urls那么这意味着urls.py文件没有被Django的项目读取之一。您是否确定products已被添加到settings.py文件中的INSTALLED_APPS?另外,请在您的问题中包含堆栈跟踪,以便更容易确定发生错误的位置。

+0

是的,我想,也和得到了同样的错误...没有模块命名的网址 – howtodothis

+0

@Terra你没有指定你在原始问题中得到这个错误。你应该添加堆栈跟踪到你的问题。 –

+0

在问题中增加了stacktrace – howtodothis

12

语法改变的Django 1.5后 而不是做这个的:

<a href="{% url products_index %}"> Products </a>

您现在应该这样做(字符串代替):

<a href="{% url 'products_index' %}"> Products </a>