如何在Django中根据日期获取所有对象

时间:2017-11-19 15:26:31

标签: django django-models

我的应用程序中有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

2 个答案:

答案 0 :(得分:1)

在django模板中你可以尝试

<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%}