2016-08-04 107 views
1

我想在模板導致一些子頁面創建菜單正確的路徑:如何創建在Django模板

<a href="/">HOME</a> <a href="/about/">O NAS</a> <a href="/rules/">REGULAMIN</a> <a href="/faq/">FAQ</a> <a href="/docs/">DOKUMENTY</A> <a href="/contact/">KONTAKT</a> 

當我把它放到主文件夾它工作而已,所以URL是http://example.org/about/

當我把它放到一些子文件夾出了問題:

http://example.org/subfolder/about/的作品,但在菜單鏈接導致仍然http://example.org/about/這是正確的行爲。

相對路徑不起作用,因爲它增加了而不是替換URL的最後部分,例如:http://example.org/subfolder/about/rules/

如果我想知道它將放置什麼網址,我可以將其硬編碼爲模板,但我確定它可以在兩個具有不同「子文件夾」的地方工作,並且我希望它可以在任何環境中工作。

我試圖找到解決方案,但它導致我TEMPLATE_CONTEXT_PROCESSORS這不是我的工作,我不知道它是否正是我想要得到的,所以我不潛水深入。

回答

0

溶液加入

from django.conf.global_settings import TEMPLATE_CONTEXT_PROCESSORS as TCP 

TEMPLATE_CONTEXT_PROCESSORS = TCP + (
    'django.core.context_processors.request', 
) 

到settings.py

這是在這裏找到:https://stackoverflow.com/a/9233283/354420

在模板中,您可以使用views.aboutname如果定義。

1

Name your URL's

url(r'^about', views.about, name="about") 

然後使用URL template tag爲每個名稱生成相應的URL。

{% url 'about' %} 
+0

NoReverseMatch at/Reverse for'about'with arguments'()'and keyword arguments'{}'not found。嘗試了0個模式:[] –