Django 条件模板标签库加载器

jaa*_*ap3 1 python django django-templates

我正在开发一个 Django 应用程序,如果某些其他应用程序可用,它会提供具有可选功能的模板。

无法使用标准{% load %}Django 标签加载不可用的模板标签库。尝试这样做会导致TemplateSyntaxError.

有没有人想出解决这个问题的方法?IE 一个条件标签库加载器,所以我可以做这样的事情:

{% load_if_available app_tags %}

{% if_loaded app_tags %}{% endif %}

jaa*_*ap3 5

我创建了一个新的 Django 应用程序,它可以满足我的需求。它被称为 django-friendly-tag-loader,可从 PyPi http://pypi.python.org/pypi/django-friendly-tag-loader/和hackable @ https://github.com/ataylor32/django-friendly 获得-标签加载器

它提供了 3 个模板标签:{% friendly_load %},{% if_has_tag %}{% ifnot_has_tag %}.

friendly_load与 Django 的内置加载器几乎相同,但它只是吞下InvalidTemplateLibrary并继续下一个要加载的库。

if_has_tag/ifnot_has_tag检查模板解析器是否具有特定的给定标记,然后呈现或忽略模板的一部分。