【发布时间】:2016-10-31 11:30:17
【问题描述】:
django 模板 {% load %} 标签是否可以带变量。我试图将标签集的名称从我的视图传递到模板 html 并像这样使用它: {% load {{filter}} %} 其中 filter 是带有标签集名称字符串的变量的名称。但是,这样做会给我一个错误:{{' is not a registered tag library。必须是以下之一:
我想动态加载一些标签集,因为此模板文件是可重用应用程序的一部分,并且标签集将取决于哪个应用程序正在使用此应用程序。提前致谢!
【问题讨论】:
-
您阅读过自定义模板标签的文档吗?docs.djangoproject.com/en/1.9/howto/custom-template-tags
-
我有,但我面临的问题是我不知道标签集的名称。我通过视图调用获得该名称,视图应将名称传递给要加载的模板。因此,如果视图发回一个变量 filter_name,它实际上是字符串“getattribute”,我想做一些类似 {% load {{filter_name}} %} 的事情,其计算结果为 {% load getattribute %}
-
因此您可以通过上传 your_tag_library 然后使用自定义标签来实现,您可以根据用例提供不同的参数和过滤器,而不是试图猜测标签。 {% upload %} 用于标签库,它可能有多个标签,所以如果你想分支案例使用 {% if your_var_from_view %}{{ tag|filter }} {% endif %}