存储站点特定设置的最佳位置在哪里?

时间:2019-02-11 17:19:45

标签: python django

因此,我希望能够存储特定于站点的设置,例如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 ,但是我不确定我可以从视图或模板中引用值吗?理想情况下,它将存储在数据库中的某个位置,但我不确定放置它的最佳位置。渴望发现专业人士的工作!

提前谢谢。

1 个答案:

答案 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