0

有人知道根据您安装的应用程序调整模板中包含的 JS/CSS 资源的方法吗?

假设我们在应用程序xusing中有一个基本功能template.html,这需要在应用程序foo.js的静态文件中提供。

我想要的是一种说法,一个额外的和可选的应用程序y也可以注册bar.js包含在其中template.html,这提供了一些高级功能。

理想情况下,这应该与功能级别相关 - 所以我注册两者foo.jsbar.js提供功能A,在我的模板中我只是表示我想要所有静态内容A

4

1 回答 1

0

您可以遵循 django 管理框架方法。在您的基本模板中有一个额外的样式和 javascript 部分。根据某些条件,您可以插入新文件。

例如:

在基本模板中定义这两个块

{% block extracss %}{% endblock %}
{% block extrajs %}{% endblock %}

如果要根据某些条件添加 js 或 css,可以在里面添加检查

    {% block extracss %}
       {% if new_app_installed %}
          # Insert your CSS
       {% else %} 
          # Default 
       {% endif %}
     {% endblock %}

您还可以检查您的插件应用程序是否已安装并将此上下文变量从视图传递到模板。

from django.conf import settings

if "new_app" in settings.INSTALLED_APPS:
    is_new_app_installed = True
于 2013-08-08T13:55:56.177 回答