Комплексный фильтр 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()