我对下一个型号有疑问:
class Product(models.Model):
id_product = models.AutoField(primary_key=True)
title = models.CharField()
def __unicode__(self):
return self.title
class Orders(models.Model):
id_order = models.AutoField(primary_key=True)
product = models.ForeignKey(Product)
description = models.CharField(max_length=150, null=True, blank=True)
date = models.DateTimeField()
def __unicode__(self):
return self.description
如何列出所有产品和每种产品的最后订单?
感谢。
答案 0 :(得分:1)
你可以这样做
>>> for product in Product.objects.all():
print product, product.orders_set.latest('date')
对于每个产品,您可以访问一组订单product.orders_set
,这是一个关系管理器,您可以使用它来进行查询。
答案 1 :(得分:0)
您应该以单数订单命名您的课程,而不是订单。
如果您使用的是postgresql,则可以执行以下操作:
Orders.objects.order_by('-date').distinct(product)
否则:
[(p,p.orders_set.latest('date')) for p in Product.objects.all()]
答案 2 :(得分:0)
您可以选择所有产品和每种产品的最后订单吗?
for i in Products.objects.all():
i,Orders.objects.filter(product=i).latest('date')