符合django中条件的计数记录

符合django中条件的计数记录,django,count,Django,Count,对于我的项目,我需要计算余额大于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):

对于我的项目,我需要计算余额大于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)
但我不知道。。。以及中的其他相关问题,因此不要真正解决此场景…

请提供帮助。

听起来您正在寻找按ClientProduct.product分组的所有余额总和,并筛选余额总和大于100美元的产品。比如:

from django.db.models import Sum
Product.objects.annotate(
              balance_sum=Sum('clientproduct__balance')
         ).filter(balance_sum__gte=100)

看起来像这样的东西应该有用:

balances_over_100 = Products.objects.filter(clientproduct__balance__gte=100)
balances_over_100.count()

余额和产品之间的关系是什么?它们不相关,但一旦客户购买了产品,就会为它们分配一个唯一的clientProduct ID。我使用该ID跟踪余额。我意识到我忘了在我的代码上键入这种关系。编辑了我的帖子,将ClientProduct外键包含在Balance类中。我不知道你可以使用该类作为外键的类进行筛选!谢谢顺便说一句,这也有效,它保存了一行Products.objects.filter(ClientProdProduct\uuuu balance\uuuu balance\uuu gt=100)。count()是的,我更明确地帮助了。。。很高兴这解决了你的问题!不完全是我想要的,但我还是学到了一些东西。谢谢你的回复