Фильтр объекта, имеющего несколько связанных объектов в Django

Допустим, у меня есть две модели, которые имеют отношения "один ко многим", как показано в коде ниже. Я хотел бы получить только те объекты заказов, которые имеют более одного объекта отгрузки.

Единственный способ, о котором я могу думать, это получить его через понимание списка [order for order in Order.objects.all() if order.shipments.count() > 1] но это кажется слишком неэффективным.

Есть ли лучший способ выполнить этот запрос в Django?

class Order(models.Model):
    name = models.CharField(max_length=20)
    store = models.CharField(max_length=20)

class Shipment(models.Model):
    order = models.ForeignKey(Order, related_name='shipments')

это должно сделать:

вы можете получить доступ к грузам через связанное имя:

Order.objects.annotate(num_shipments=Count('shipments')).filter(num_shipments__gt=1)
Вернуться на верх