2008-10-22 176 views
19

在Django模板,有没有在上下文(变量如{{ BASE\_URL }}{{ ROOT\_URL }},或{{ MEDIA\_URL }},人们可以用它来链接到home URL项目的?如何在Django的网站主页上添加链接/网址?

也就是说,如果Django是在一个项目的根目录运行,变量(姑且称之为R){{ R }}在模板将/,如果根网址是一个子文件夹http://host/X/变量{{ R }}/X/(或http://host/X/)。

似乎痛苦地简单,但我可以找不到答案。:)谢谢!

回答

37

你可以给你使用来处理主页的名称,并使用该URL配置:

urls.py:

from django.conf.urls.defaults import * 

urlpatterns = patterns('myproject.views', 
    url(r'^$', 'index', name='index'), 
) 

模板:

<a href="{% url index %}">... 

更新:较新版本的Django需要围绕视图名称引号:

<a href="{% url 'index' %}">... 

这说明在Django的书有有关部署应用程序的子目录中的一些技巧:

http://www.djangobook.com/en/1.0/chapter20/#cn43

+0

现在看来很明显。 :o)谢谢! – 2008-10-22 17:14:28

10

我总是使用类似<a href="/">的东西(当然假设你的家在根)。我似乎回想起这一次,并找不到此路径的Django变量;无论如何,/似乎很容易。

+0

尼斯。超级简单,它的作品。 – J0ANMM 2016-12-22 12:17:33

4

在您的管理,转到“网站”,并设置域。

context_instance=RequestContext(request)传递给相关模板。

现在在任何这些模板中使用{{ SITE_URL }},你是黄金。

Chapter 10 of the Django Book有更多的信息比你需要重新调整上下文处理器位。

1
(r'^$', 'django.views.generic.simple.redirect_to', {'url': '/home/'}), 

工作得很好:)