2017-10-17 46 views
1

我想在我的django模板中加載一些HTML元素,如果在我的settings.py文件中定義了特定的應用程序。但它不起作用。 if語句的行爲類似於應用程序不存在:未能檢查django模板中的INSTALLED_APPS

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

我也嘗試過使用其他應用程序,並獲得相同的行爲。我錯過了什麼?

+1

你是否將任何名爲INSTALLED_APPS的東西傳遞給模板上下文? –

回答

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而不是改變每個視圖的。

+0

謝謝,我刪除了反引號。 – Alasdair