【问题标题】:Django TemplateSyntaxError when combining template tags组合模板标签时出现 Django TemplateSyntaxError
【发布时间】:2017-01-09 18:44:51
【问题描述】:

假设用户可以在 Django 中访问以下网址,

someUrl/one
someUrl/two
someUrl/three

一、二和三来自一个表,因此我可以使用 ORM 访问它们,例如 tableName.number。我的问题是如何在模板中编写它们,我尝试使用

<source src="{% static "someUrl/"{{ tableName.number }} "%}"/>

但我收到了 TemplateSyntaxError。

Could not parse the remainder: 'someUrl/" {{ tableName.number }} "' from '" "someUrl/" {{ tableName.number }} "'

如果我尝试

<source src="{% static "someUrl/{{ tableName.number }}" "%}"/>

我明白了

Could not parse the remainder: 'audio/{{' from '" "audio/{{'

正确的做法是什么?

【问题讨论】:

  • 错误信息是什么?
  • 我更新了错误信息

标签: django django-templates


【解决方案1】:

您不能在 django 模板中嵌套变量。试试这个

<source src='{% static "someUrl" %}/{{ tableName.number }}' />

或者,您可以使用add template filter

例子:

{% static 'someurl'|add:tableName.number %}

【讨论】:

  • 只是一个后续问题,有没有办法像在 python 的 strip 函数中那样在模板中剥离 tableName.number,因为我的 tableName.number 有一些前导字符,例如 tableName.number = aaa/bbb/一个我只需要'一个'? aaa/bbb/one 来自 FilePathField。
  • 如果您正在做这样复杂的事情,我建议您查看自定义模板标签。
猜你喜欢
  • 1970-01-01
  • 2020-04-21
  • 2016-09-06
  • 2017-05-21
  • 2020-11-06
  • 1970-01-01
  • 1970-01-01
  • 2021-09-08
  • 1970-01-01
相关资源
最近更新 更多