是否有人知道根据您安装的应用调整模板中包含的JS / CSS资源的方法?
假设我们使用x
在应用template.html
中有一个基本功能,这需要在应用的静态文件中提供foo.js
。
我想要的是一种方式,即可以将y
注册bar.js
添加到template.html
,这也可以提供一些高级功能。
理想情况下,这应该与功能级别相关联 - 因此我同时注册foo.js
和bar.js
以提供功能A
,在我的模板中,我只是表明我想要所有A
的静态内容。
答案 0 :(得分: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