0

私はdjangoでeコマースサイトを構築しており、すべての注文を一覧表示するページに取り組んでいます。注文に 1 から何まで番号を付けるカウンターを設定したいと考えています。ただし、これを行うために for ループを設定すると、元の forloop に戻るたびに数値がリセットされませんか?

現在、主キーを使用してすべての注文に番号を付けていますが、それを 1 から何でも変更したいと考えています。 ここに画像の説明を入力

<!DOCTYPE html>
<html>
<body>

Order page

{% for location, orders in orderlocations.items %}
    <table>
        <tr>
            <td>#</td>
            <td>Time</td>
            <td>Location</td>
            <td>Name</td>
            <td>Email</td>
            <td>Phone</td>
            <td>Order</td>
            <td>Order Quantity</td>
            <td>Delivered</td>

        </tr>

        {% for ord in orders %}
            {% for food in ord.orderitem_set.all %}

            <tr>
                {% if forloop.counter == 1 %}
                    <td>{{ord.pk}}</td>
                    <td>{{ord.time}}</td>
                    <td>{{ord.location}}</td>
                    <td>{{ord.user.first_name}}</td>
                    <td>{{ord.user.email}}</td>
                    <td>{{ord.user.get_profile.phone}}</td>

                {% else %}
                    <td colspan="4"></td>
                {% endif %}

                    <td>{{food.name}}</td>
                    <td>{{food.quantity}}</td>

                <td>
                    {% if forloop.counter == 1 %} 
                        <form action="" method="POST">
                            <input type="hidden" name="order-id" value="{{ ord.pk }}"/>
                            <input type="hidden" name="action=" value="toggledelivery"/>
                            <button type="button">{% if not ord.delivered %}Not {% endif %}Delivered</button>
                        </form>
                    {% endif %}        
                </td>
            </tr>
            {% endfor %}
        {% endfor %}

    </table>  

{% endfor %}

</body>
</html>  
4

1 に答える 1

3

<td>{{ord.pk}}</td>使用する代わりに<td>{{ forloop.counter }}</td>

forループにはそれぞれ独自のスコープがあります。外側のループのカウンターが必要な場合は、forloop.parentloop.counter

DjangoFor-ループ

于 2012-08-28T22:01:51.843 に答える