Python Django条件模板标记库加载器

Python Django条件模板标记库加载器,python,django,django-templates,Python,Django,Django Templates,我正在开发一个Django应用程序,如果某些其他应用程序可用,它可以为模板提供可选功能 无法使用标准的{%load%}Django标记加载不可用的模板标记库。尝试这样做会导致TemplateSyntaxError 有人想出解决这个问题的办法吗?例如,一个条件标记库加载器,因此我可以执行以下操作: {%load_如果_可用应用程序_标记%} 及 {%if_加载的应用程序_标记%}{%endif%}您可以编写一个应用程序并注册它。 您可以从django templatetag中获得一些灵感 问题是,

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

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

有人想出解决这个问题的办法吗?例如,一个条件标记库加载器,因此我可以执行以下操作:

{%load_如果_可用应用程序_标记%}

{%if_加载的应用程序_标记%}{%endif%}

您可以编写一个应用程序并注册它。 您可以从django templatetag中获得一些灵感

问题是,您是否还必须在ifs中包装所有加载的TemplateTag。一种解决方法是注册不做任何事情的伪函数,可能只是记录一些事情,但以静默方式失败,这样代码就可以正常工作,或者更好的是,创建一个额外的if_module_加载的模块并跳过其中的代码。取决于您的用例。

您可以编写并注册。 您可以从django templatetag中获得一些灵感


问题是,您是否还必须在ifs中包装所有加载的TemplateTag。一种解决方法是注册不做任何事情的伪函数,可能只是记录一些事情,但以静默方式失败,这样代码就可以正常工作,或者更好的是,创建一个额外的if_module_加载的模块并跳过其中的代码。取决于您的使用情况。

我已经创建了一个新的Django应用程序,它可以满足我的需求。它名为django friendly tag loader,可从PyPi和hackable@

它提供了3个模板标记:{%friendly\u load%}、{%if\u has\u tag%}和{%ifnot\u has\u tag%}

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


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

我创建了一个新的Django应用程序,可以实现我想要的功能。它名为django friendly tag loader,可从PyPi和hackable@

它提供了3个模板标记:{%friendly\u load%}、{%if\u has\u tag%}和{%ifnot\u has\u tag%}

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


如果有标记/如果没有,请检查模板解析器是否有特定的标记,然后呈现或忽略模板的一部分。

是的,这正是我的想法。除了关于伪函数的部分,我不认为这是可行的。还没有人解决这个问题?是的,这正是我想的。除了关于伪函数的部分,我不认为这是可行的。还没有人解决这个问题?