Комплексный фильтр Django с двумя таблицами

Мне нужна помощь. Я изо всех сил пытаюсь разобраться в этом. У меня есть две модели

class Orders(models.Model):
    order_id = models.CharField(primary_key=True, max_length=255)
    channel = models.CharField(max_length=255, blank=True, null=True)
    
    def __str__(self):
        return str(self.order_id)

    class Meta:
        managed = False
        db_table = 'orders'

class OrderPaymentMethods(models.Model):
    id = models.CharField(primary_key=True, max_length=255)
    payment_type = models.CharField(max_length=75, blank=True, null=True)
    fk_order = models.ForeignKey('Orders', models.DO_NOTHING, blank=True, null=True)

    class Meta:
        managed = False
        db_table = 'order_payment_methods'

Моя цель - подсчитать количество заказов, которые имеют OrderPaymentMethods конкретное payment_type. Пример:

orders = Orders.object.filter(Q(channel="Green_House"))
method_money = orders.filter(payment_methods = "credit").count()

Как я могу получить подсчет на основе ордеров, которые были отфильтрованы?
Спасибо

Вам не нужен Q и не нужно разделять такой запрос. Вам нужно использовать поиск отношения:

Orders.object.filter(channel="Green_House", orderpaymentmethods_set__payment_type="credit").count()
Вернуться на верх