2016-08-04 68 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个模式:[] –