2012-08-28 235 views
0

我正在用django構建一個電子商務網站,我正在列出所有訂單的頁面。我想設置一個計數器,將從1到任何數量的訂單編號。但是,如果我設置for循環來做到這一點,每次我跳回到原來的forloop時,數字是不會重置?在嵌套循環中設置一個計數器

現在即時通訊使用主鍵來編號的所有訂單,但我想改變這是從1什麼。 enter image description here

<!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> 
+0

我很抱歉,但問題是我不明白? – schacki

回答

3

代替<td>{{ord.pk}}</td>使用<td>{{ forloop.counter }}</td>

for循環每個都有自己的範圍。如果你想在外環的計數器,你會使用forloop.parentloop.counter

Django For-Loops