我正在尝试在我的django模板中加载一些HTML元素,如果我的settings.py文件中定义了一个特定的应用程序。但它不起作用。 if语句的行为类似于应用程序不存在:
{% if 'myapp.edit_data' in INSTALLED_APPS %}
<p> dfsdfsdf </p>
{% endif %}
我也试过其他应用程序,我也得到了同样的行为。我错过了什么?
答案 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而不是更改每个视图。