列出外键模型行

时间:2013-06-24 04:30:08

标签: django django-models django-templates django-views

我对下一个型号有疑问:

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

如何列出所有产品和每种产品的最后订单?

感谢。

3 个答案:

答案 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')