2010-09-29 6 views
0
class Order(models.Model): 
    ... 

class OrderItem(models.Model) 
    order = models.ForeignKey(Order) 
    product = models.ForeignKey(Product) 
    quantity = models.PositiveIntegerField() 

Ce que je dois faire est d'obtenir la commande (s) qui a un seul article de commande. Comment puis-je l'écrire en utilisant les objets QuerySet (sans écrire SQL)?Distinct dans plusieurs-à-plusieurs

Répondre

3

La meilleure façon de le faire serait d'utiliser le Countaggregation:

from django.db.models import Count 
Order.objects.annotate(count = Count('orderitem__id')).filter(count = 1)