符合django中条件的计数记录
对于我的项目,我需要计算余额大于100美元的不同产品。符合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):
模型有点像这样:
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()是的,我更明确地帮助了。。。很高兴这解决了你的问题!不完全是我想要的,但我还是学到了一些东西。谢谢你的回复