Gui*_*ded 1 django django-templates django-apps
我正在寻找一种方法来设置许多站点范围(或应用程序范围)变量,例如网站(或应用程序)标题,我将在我的模板中使用(例如在我的标题中)。我想到了 WordPress 的bloginfo() 之类的东西。
理想情况下,我希望能够在站点或应用程序级别定义任何类型的属性。例如,对于给定的应用程序,我有:
应用程序
--attribute1(例如标题)
--attribute2(例如联系电子邮件)
--型号1
----属性X
----属性Y
----……
这意味着“attribute1”对我的应用程序来说是独一无二的。然后我需要一种方法来在我的模板中使用 attribute1 的值。我希望我的问题很清楚。
我一直使用站点范围(或应用程序范围)变量使用context processors.
在您的应用程序内部创建一个名为的单独文件context_processors.py(不用说,这样命名不是强制性的,它只是为了约定)并且该文件必须至少定义一个接受request参数并返回字典的函数。
类似的东西:
# yourapp/context_processors.py
# you can either use <from django.conf import settings> to make use of setting varibales
def static_vars(request):
return {
'var1': 'Hello',
'var2': 'World',
}
Run Code Online (Sandbox Code Playgroud)
现在,在您访问模板中的变量之前{{ var1 }},您必须将此函数传递给如下TEMPLATES设置:
# settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [
# dirs here
],
'OPTIONS': {
'context_processors': [
# some other context processors here and ...
'yourapp.context_processors.static_vars',
],
'loaders': [
# loaders here
],
},
},
Run Code Online (Sandbox Code Playgroud)
]
现在,您可以使用static_vars每个模板中公开的变量。
| 归档时间: |
|
| 查看次数: |
1721 次 |
| 最近记录: |