【问题标题】:Can Django template {% load %} take a variableDjango模板{% load %}可以带变量吗
【发布时间】: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 %}

标签: django django-templates


【解决方案1】:

在你的模板中

 {% if condition_from_view_1 %}
       {% upload tag_library1 %}
 {% elif condition_from_view_2 %}
       {% upload tag_library2 %}
 {% endif %}

同样,您可以将检查降至标签级别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-02
    • 2012-07-20
    • 1970-01-01
    • 2019-10-29
    • 2011-01-14
    • 2020-02-23
    • 2017-08-07
    相关资源
    最近更新 更多