我想使用Django forloop.counter
这样的:
{% for i in "xxxxxxxxxxxxxxxxxxxx" %}
{{ i.time_code{{forloop.counter}} }}
{% endfor %}
事实证明,这是不可能的。
做到这一点的理由。我有 20 个数据库列,例如:time_code1、time_code2 ....time_code20。所以,我不想单独调用每个,而是这样做。
我想使用Django forloop.counter
这样的:
{% for i in "xxxxxxxxxxxxxxxxxxxx" %}
{{ i.time_code{{forloop.counter}} }}
{% endfor %}
事实证明,这是不可能的。
做到这一点的理由。我有 20 个数据库列,例如:time_code1、time_code2 ....time_code20。所以,我不想单独调用每个,而是这样做。
我不确定我是否正确理解了您的问题。您想动态检索属性吗?您可以编写一个自定义标签:
from django.template import Library
register = Library()
@register.simple_tag
def get_attr(obj, name, default=None):
return getattr(obj, str(name), default)
然后您可以将属性列表传递给您的模板:
attrs = ( "time_code"+str(i) for i in xrange(0, 100) )
return render_to_response("test.html", { "attrs": attrs })
最后在您的模板中:
{% for attr in attrs %}
{% get_attr i attr %}
{% endfor %}
我以类似的方式使用过。这是一个例子,不知道它是否有帮助。
<form action= "{% url 'result_show' forloop.counter0 %}" method="post">
它的作用是接受 的输出forloop.counter0
作为视图中方法的参数。它就是这样工作的。
您是否考虑过将time_code
s 迁移到列表而不是通过 访问它们forloop.counter
?