无法在django模板中检查INSTALLED_APPS

时间:2017-10-17 09:59:54

标签: django templates

我正在尝试在我的django模板中加载一些HTML元素,如果我的settings.py文件中定义了一个特定的应用程序。但它不起作用。 if语句的行为类似于应用程序不存在:

            {% if 'myapp.edit_data' in INSTALLED_APPS %}
              <p> dfsdfsdf </p>
            {% endif %}

我也试过其他应用程序,我也得到了同样的行为。我错过了什么?

1 个答案:

答案 0 :(得分:3)

您无法在模板中自动访问INSTALLED_APPS等设置。您必须将其添加到模板上下文中。

例如,在视图中,您可以执行以下操作:

from django.conf import settings

def my_view(request):
    return render(request, 'my_template.html', {'INSTALLED_APPS': settings.INSTALLED_APPS})

如果此检查位于基本模板中,那么您可能需要创建template context processor而不是更改每个视图。