我的应用程序中有3个简单的模型:
class Product(models.Model):
name = models.CharField(max_length=200)
price = models.IntegerField(default=0)
class Order (models.Model):
date = models.DateField(blank=True)
class OrderItem(models.Model):
order = models.ForeignKey(Order, on_delete=models.SET_NULL, null=True )
product = models.ManyToManyField(Product)
quantity = models.PositiveIntegerField(default=0)
我有很多订单的日期相同,如下:
1. 2017-11-09 | Apples | 5$
2. 2017-11-09 | Bananas | 2$
3. 2017-11-09 | Pears | 3$
如您所见,实际上有一个订单(基于日期)有3种不同的产品。 如何获得包含所有产品和价格的单一订单? 所以最终的结果是这样的:
2017-11-09 | Apples | 5$
| Bananas | 2$
| Pears | 3$
我使用的是sqllite3
答案 0 :(得分:1)
:
<table>
{% for order in orders %}
{% for item in order.orderitem_set.all %}
<tr>
<td>{% if forloop.first %}{{ order.date }}{% endif %}</td>
<td>{{ item.product.name }}</td>
<td>{{ item.quantity }}</td>
</tr>
{% endfor %}
{% endfor %}
</table>
在views函数中添加:
return render (request, 'index.html', context={'orders': Order.objects.all()})
答案 1 :(得分:0)
您必须观看模板模板标记{%regroup%}