1

for ループ内で name0、name1、... などの一連の変数を作成したいと考えています。ありがとう。

    {% for i in '1234567890' %}
        {% if name{{forloop.counter0}} %}
        ...
        {% endif %}
        ...
        {{name{{forloop.counter0}}}}
        ...
    {% endfor %}
4

2 に答える 2

2

次のように簡単です

{{ name }}{{ forloop.counter0 }}

if には、「with」ステートメントを使用する必要があります。

{% with name|add:forloop.counter0 as if_test %}
{% if if_test %}
... <!-- do whatever you need to do here -->

これはすべてforループ内にある必要があります

于 2012-11-30T16:32:23.777 に答える
1

ご覧のとおり、Django テンプレート言語は、ユーザーがやろうとしていることをやめさせようと懸命に努力し、テンプレートではなくビュー コードでデータ処理を行うように促します。あなたの例では、あなたのビューコードで、次のことを試してみてください:

context['names'] = [name for name in names[:10]]

...名前ごとに個別の変数を作成する代わりに。

次に、テンプレートで:

{% for name in names %}
    {% if name %}
    ...
    {% endif %}
    ...
    {{name}}
    ...
{% endfor %}

私が知る限り、それはあなたのコードと同じ効果がありますが、テンプレートではなくビューで名前の集計を行うことになります。あなたのコードの意図を間違って読んでいる場合は、より多くのコンテキストを提供してください。ただし、テンプレート ロジック を必要とすることをしているようには見えません。

于 2012-11-30T22:50:39.900 に答える