2017-01-23 73 views
0

大家好!我想訪問我在settings.py文件中聲明的常量值,以便在我的模板中使用,但不在應用程序中的模板中使用,我只想在我的主模板中使用我在設置文件中聲明的模板。變量在模板中使用的設置文件

CMS_TEMPLATES = (
    ## Customize this 
    ('page.html', 'Page'), 
    ('feature.html', 'Page with Feature'), 
    ('homeTemplate.html', 'Home Template') // I want to use here 
) 

我發現this例如關於StackOverflow的同樣的問題,但所有情況下使用的變量中應用程式不屬於在頂層。

如何在這個模板中使用這個值的最佳方式!

回答

1

我會開始問 - 爲什麼你想這樣做?這似乎是一個奇怪的方式... 調整你使用的模板目錄,我猜?

I wonder if you may have an XY problem.如果您發佈您想要實現的目標,那可能比針對此特定問題的特定解決方案更好。

儘管如此,您只能在使用Django的項目或腳本中或者至少在其環境中使用django變量(包括從settings.py)。執行from django.conf import settings會導入所有應用程序中項目中最高級別可用的設置。項目以這種粗糙的方式進行佈局。

myproject - 
    - myapp1 
    - myapp2 
    - myproject 
     - settings.py 
     - wsgi.py 
    - manage.py 

在本answer,對於外部腳本,Y ou can still import the django settings這樣的:

import os 
import django 
from django.conf import settings 

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'mysite.settings') 
django.setup() 
# now you can use settings.VARIABLE_NAME 

不過:這仍然不會得到它變成一個模板,因爲正從這裏變量到模板的需求你使用django引擎來響應render

如果它不是由django系統提供,它不是模板,它只是一個普通的html文件。

如果它在另一應用程序在你的整個項目的模板,你可以把它作爲你的語境詞典的一部分,as laid out in the docs on templates.

相關問題