Django使用context_processors.py和Separate Settings Files中的设置

时间:2018-05-11 13:46:27

标签: django

我使用了一个基于这个例子的context_processors.py: https://hackernoon.com/5-ways-to-make-django-admin-safer-eb7753698ac8

以视觉方式区分local / internal / prod

之间的环境

例如:

{% extends "admin/base_site.html" %}
{% block extrastyle %}
<style type="text/css">
    body:before {
        display: block;
        line-height: 35px;
        text-align: center;
        font-weight: bold;
        text-transform: uppercase;
        color: white;
        content: "{{ ENVIRONMENT_NAME }}";
        background-color: {{ ENVIRONMENT_COLOR }};
    }
</style>
{% endblock %}

就像我可以在我的模板中使用这个变量,例如在管理页面

{{1}}

BUt我还介绍:多个设置文件,以便分离我的配置

https://simpleisbetterthancomplex.com/tips/2017/07/03/django-tip-20-working-with-multiple-settings-modules.html

现在问题我无法根据设置文件在模板中显示变量: 你可以解释一下我,或者根据几个设置给我一个关于context_processors的例子吗?

提前致谢

1 个答案:

答案 0 :(得分:0)

感谢您的回答。 不需要if-else调试,就像加载设置的文件一样

# app/context_processors.py
from django.conf import settings

import os


def from_settings(request):
    for name in dir(settings):
        environmentName = getattr(settings, 'ENVIRONMENT_NAME')
        environmentColor = getattr(settings, 'ENVIRONMENT_COLOR')
    return {
        'ENVIRONMENT_NAME': environmentName,
        'ENVIRONMENT_COLOR': environmentColor,
    }