2008-10-22 232 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/'}), 

工作得很好:)