【问题标题】:Django template access value within for loop in templatetag模板标签中for循环内的Django模板访问值
【发布时间】:2012-01-24 04:46:44
【问题描述】:

长话短说,我很好奇是否有任何方法可以将 for 循环中 obj 的值提取到自定义模板标签?

我现在有

{% for OBJ in OBJ_LIST %}
{% TAG 'string_value' OBJ %}
{% endfor %}

诀窍是我得到'OBJ'

当通过任一时

obj = template.Variable(objname)
obj = template.resolve_variable(objname, context)

不在 for 循环中注册变量

想知道是否有任何类型的解决方法?

【问题讨论】:

  • 澄清一下,如果你把它拉到循环之外,它会起作用吗?
  • 是的,当在上下文中声明了一个 var 时工作得很好——它只是传递了 var 的名称,所以它会得到字符串 'modelInstance' vs ModelInstance - 图一个简单的方法来获取周围是查看对象打包但试图保持干燥
  • 睡了几个小时后审查了代码并设法让它工作,修改了很多不知道我的具体问题在哪里。

标签: django django-templates


【解决方案1】:

是的,有一种方法,我的标签在循环中可以正常工作。我认为您的模板标签中某处有错误。但我建议不要调试,而是使用一些现有的框架来创建模板标签(thisthis 或其他东西)。它将是干燥的,经过充分测试的,你将无法犯这样的错误。

【讨论】:

  • 该标签在 for 循环之外完美工作 - 尽管在内部如果它是一个未在上下文中声明的新变量,则不会显示任何内容 - 这说明您发布的链接提供了我的内容正在寻找——谢谢
  • @yugi 我的一部分想赞成你的评论,只是因为你使用了酷豆,但我也同意。
猜你喜欢
  • 1970-01-01
  • 2012-03-28
  • 1970-01-01
  • 1970-01-01
  • 2021-10-17
  • 2013-05-20
  • 2015-09-26
  • 2017-01-09
  • 1970-01-01
相关资源
最近更新 更多