2017-01-23 38 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.

相关问题