因此,我希望能够存储特定于站点的设置,例如SITE_MODE = foo
。
我想在HTML模板中使用该设置的地方
{% if SITE_MODE == 'foo' %}
<p>Show this</>
{% elif SITE_MODE == 'bar' %}
<p>Or do this </p>
{% endif %}
我知道很明显我的 settings.py 或 local_settings.py ,但是我不确定我可以从视图或模板中引用值吗?理想情况下,它将存储在数据库中的某个位置,但我不确定放置它的最佳位置。渴望发现专业人士的工作!
提前谢谢。
答案 0 :(得分:0)
我知道显然有我的settings.py或local_settings.py,但是我 不确定我可以从视图或模板中引用值吗?
如果通过变量/值将变量/值传递给模板,则可以引用模板中的任何内容。
#settings.py
SITE_MODE = 'foo'
然后在您的views.py
中:
from django.conf import settings
def my_view(request):
some_data= get_some_data_to_be_passed_to_template()
return render(request, 'path/to/my_template.html', {'data': some_data, SITE_MODE: settings.SITE_MODE})
然后在您的template.html
中,您将可以访问SITE_MODE
:
{% if SITE_MODE == 'foo' %}
<p>Show this</>
{% elif SITE_MODE == 'bar' %}
<p>Or do this </p>
{% endif %}
注意:SITE_MODE
很可能是全局设置。因此,我在settings.py
目录下的my_project
内部声明了它。如果我具有某个应用程序的特定设置(一个项目可以有多个应用程序),则可以在settings.py
下创建一个my_app
文件,并声明该应用程序的特定设置。
my_app1
--settings.py #local to my_app1
my_app2
--settings.py #local to my_app2
my_project
--settings.py #global to all apps