0

我想使用Django forloop.counter这样的:

{% for i in "xxxxxxxxxxxxxxxxxxxx" %}
    {{ i.time_code{{forloop.counter}} }}
{% endfor %}

事实证明,这是不可能的。

做到这一点的理由。我有 20 个数据库列,例如:time_code1、time_code2 ....time_code20。所以,我不想单独调用每个,而是这样做。

4

2 回答 2

0

我不确定我是否正确理解了您的问题。您想动态检索属性吗?您可以编写一个自定义标签:

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 %}
于 2013-04-02T10:59:35.137 回答
0

我以类似的方式使用过。这是一个例子,不知道它是否有帮助。

<form action= "{% url 'result_show' forloop.counter0 %}" method="post">

它的作用是接受 的输出forloop.counter0作为视图中方法的参数。它就是这样工作的。

您是否考虑过将time_codes 迁移到列表而不是通过 访问它们forloop.counter

于 2013-04-02T10:49:49.840 回答