2012-08-27 40 views
0

我创建一个电子商务网站,我想建立一个网页,我可以查看创建的所有命令的列表格式。HTML表格和Django

如果订单只包含1项类型,格式正常工作,但我不能想办法来构建,当有多个类型排序的项目表。

这是它的外观时,有2项排序(最后一项),如:

enter image description here

我希望“QUESO卷饼”是正确的“牛排和鸡蛋卷饼”下#18 。

这是我的代码:

<table> 
    <tr> 
     <td>#</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 %} 
    <tr> 
     <td>{{ord.pk}}</td> 
     <td>{{ord.user.first_name}}</td> 
     <td>{{ord.user.email}}</td> 
     <td>{{ord.user.get_profile.phone}}</td> 

     {% for food in ord.orderitem_set.all %} 
      <td>{{food.name}}</td> 
      <td>{{food.quantity}}</td> 
     {% endfor %} 

     <td>x</td> 
    </tr> 
    {% endfor %} 

</table> 

回答

2

随着多个项目,您通常看到重复各行项目订单数据表。

{% for order in orders %} 
{% for orderitem in order.items %} 
<td>{{order.id}}</td><td>...</td> 
{% endfor %} 
{% endfor %} 

如果你想正是你所描述的格式,你可以检查内环超过其第一项,隐藏你不想重复字段。

<table> 
    {% for ord in orders %} 
     {% for item in ord.orderitem_set.all %} 
     <tr> 
      {% if forloop.counter == 1 %} 
       <td>{{ord.pk}}</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>{{item.name}}</td> 
      <td>{{item.quantity}}</td> 
      <td>{% if forloop.counter == 1 %}x{% endif %}</td> 
     </tr> 
     {% endfor %} 
    {% endfor %} 

</table> 
+0

这是完美的!谢谢! – anc1revv