2011-08-08 78 views
2

您好,我正在嘗試將不同的網址從我的網站傳遞到模板中。django url模板標記問題,{%url%}

我認爲它會通過在模板使用該做

{% url myappname.module.views.urlfunction %} 

但返回一個錯誤,說「中招AttributeError的同時呈現:‘海峽’對象有沒有屬性‘正則表達式’」

我不確定這是什麼意思。我跟着這個例子url template tag in django template

urlpatterns = patterns('', 
url(r'^$', 'myappname.module.views.start'), 

,這是我在我的模板已進入

{% url myappname.module.views.start %} 

我也試過這個URL模式和模板組合沒有avial:

urlpatterns = patterns('', 
url(r'^$', 'myappname.module.views.start', name="home"), 

{% url "home" %} 

我究竟做錯了什麼?

謝謝。

+0

?這是在Django模板中調用指定URL的正確方法。 – Brandon

+0

是的,我認爲這是正確的,這是令人沮喪的。我在渲染時遇到錯誤** Caught AttributeError:'str'對象沒有屬性'regex'** – sequoia

回答

5

在最後一個例子,而不是

{% url "home" %} 

嘗試

{% url home %} 

不帶引號

+0

感謝那些作品。我明白爲什麼這是必要的,當我看到所有的例子使用報價?你有解釋嗎? – sequoia

+0

不知道 - 我總是使用它,因爲我在這裏沒有任何引號等。 – robos85

+0

@sequoia:[查看關於向前兼容性的部分](https://docs.djangoproject.com/zh/dev/ref/templates /內建/?從= olddocs#URL)。 –

-3

在所有的嚴重性,我會使用{%URL%} Django的方案考慮對於簡單的情況。它們旨在提供某種您可能從未利用過的靈活性,並且幾乎可以確保將您的時間花費在幾個小時,試圖解決如何「正確」執行此操作。只需使用action =「/ login /」或action =「/ home /」,然後花費你節約的時間做有用的事情,比如編寫代碼。

2

添加下面一行在模板的頂部:

{% load url from future %} 

它將支持您使用{%URL 「家」 %}當接收到錯誤的模式

{% url "VIEW_NAME" args... %}