Подсчет записи, которая соответствует условиям в Джанго - PullRequest
0 голосов
/ 15 июля 2010

Для моего проекта мне нужно сосчитать отдельные продукты, у которых баланс превышает 100 долларов.
Модель выглядит примерно так:

class Client(models.Model):
  ...

class Product(models.Model):
  ...

class ClientProduct(models.Model):
  client = models.ForeignKey(Client)
  product = models.ForeignKey(Product)

class Balance(models.Model):
  clientproduct = models.ForeignKey(ClientProduct)
  balance = models.DecimalField(max_digits=10, decimal_places=2)

но я не в курсе ... И другие связанныевопросы здесь, в СО, на самом деле не касаются этого сценария ...
Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 15 июля 2010

Похоже, что-то вроде этого должно работать:

balances_over_100 = Products.objects.filter(clientproduct__balance__gte=100)
balances_over_100.count()
1 голос
/ 15 июля 2010

Звучит так, будто вы хотите сложить все сальдо, сгруппированные по ClientProduct.product, и отфильтровать продукты, у которых сумма сальдо превышает 100 долларов.Что-то вроде:

from django.db.models import Sum
Product.objects.annotate(
              balance_sum=Sum('clientproduct__balance')
         ).filter(balance_sum__gte=100)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...