【问题标题】:How do i specify a variable in side of django template file如何在 django 模板文件中指定一个变量
【发布时间】:2021-01-18 21:28:50
【问题描述】:

所以我试图在我的 django 模板文件中声明一个变量

{% with object = "{{object.id
}}" %}
{% for detail in details %}   

{% if detail.post.id == {{object}} %}
        {{detail.name}}
        {% endif %}


{% endfor %}
{% endwith %}

我知道 with 用于这项工作,但是当我运行此代码时,它向我显示此错误:'with' 预期至少有一个变量赋值

请帮助我。谢谢你

【问题讨论】:

标签: python django variables jinja2


【解决方案1】:

post_id 可能是int,因此您应该将object 指定为{% with object=2 %},此外,您不应在模板标签中使用双花括号:

{% with object=2 %}
  {% for detail in details %}
    {% if detail.post_id == object %}
      {{ detail.name }}
    {% endif %}
  {% endfor %}
{% endwith %}

然而,在模板中过滤不是一个好主意,因为这效率不高,并且需要更多内存,通常您在 view 中进行过滤。

【讨论】:

  • {% with object=2 %} 有空格导致 -> 预期至少有一个变量赋值
  • 这帮助我声明了一个变量,但这是一个详细视图模板,我想加载详细信息 object.id 并将其传递到模板中,以便只显示包含某个 id 的对象的详细信息
  • @Flamiooo:通常,您使用object.detail_set 执行此操作,或类似的方法,您可以反向查询相关性,或者您过滤视图中的详细信息,但在模板中执行此操作实际上不是一个好主意:模板效率不高,还需要加载所有详细信息,一段时间后可能包含数百万条记录,而且还需要大量内存。
  • 你能用一个例子告诉我我如何在视图中这样做,因为你的模板效率不高
  • @Flamiooo:我建议你提出一个新问题,分享你正在使用的观点。
猜你喜欢
  • 2018-05-07
  • 2011-01-31
  • 2011-03-12
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 2023-01-11
相关资源
最近更新 更多