大家好!我想访问我在我的setup.py文件中声明的常量值,以便在我的模板中使用,但不是在应用程序内的模板中,我只想在我的主模板中使用我在设置文件中声明的模板。
CMS_TEMPLATES = (
## Customize this
('page.html', 'Page'),
('feature.html', 'Page with Feature'),
('homeTemplate.html', 'Home Template') // I want to use here
)
我在StackOverflow中找到了关于同一问题的this示例,但所有情况都使用了不在顶层的应用内的变量。
在此模板中使用此值的最佳方法是什么!!
答案 0 :(得分: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.