1

デフォルトの管理パネルの結果リスト (change_list_results.html) をオーバーライドして、各行の ID を追加したいと考えています。<tr>

デフォルトは次のとおりです。

<tbody>
        {% for result in results %}
            {% if result.form.non_field_errors %}
                <tr><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
            {% endif %}
            <tr class="{% cycle 'row1' 'row2' %}">{% for item in result %}{{ item }}{% endfor %}</tr>
        {% endfor %}
 </tbody>

私はを頂きたい:

<tbody>
        {% for result in results %}
            {% if result.form.non_field_errors %}
                <tr><td colspan="{{ result|length }}">{{ result.form.non_field_errors }}</td></tr>
            {% endif %}
            <tr class="{% cycle 'row1' 'row2' %}" id="{{ ID }}">{% for item in result %}{{ item }}{% endfor %}</tr>
        {% endfor %}
</tbody>

{{ ID }}要素 ID を取得するには何を入力すればよいですか?

4

2 に答える 2

1

残念ながら、'items' コンテキスト変数はインスタンス データを保持しません。これは、各列の html を含む単なるリストです。必要なものを達成するには、forloop カウンターに基づいて、「cl.result_list」コンテキスト変数で同等の項目を検索する必要があります。

<tr class="{% cycle 'row1' 'row2' %}" id="{% with i=forloop.counter0|stringformat:"s"|add:":" %}{% with items=cl.result_list|slice:i %}{{ items.0.pk }}{% endwith  %}{% endwith %}">{% for item in result %}{{ item }}{% endfor %}</tr>

または、これらすべての「with」タグが気に入らない場合は、カスタム テンプレートを作成して、カウンター インデックスから直接「cl.result_list」からアイテムを取得できます。

于 2012-11-17T20:06:32.370 に答える
0

のリストに が添付され{{ result.form.instance.id }}ているという事実から判断すると、 .result.formresults

ただの演繹的推論。間違っている場合はお知らせください。

于 2012-11-17T18:14:34.607 に答える