对于我的项目,我需要计算余额超过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)
但我很无能......而SO中的其他相关问题并没有真正解决这个问题...... 请帮忙。
答案 0 :(得分:1)
听起来您希望对按ClientProduct.product分组的所有余额进行求和,并筛选余额大于100美元的产品。类似的东西:
from django.db.models import Sum
Product.objects.annotate(
balance_sum=Sum('clientproduct__balance')
).filter(balance_sum__gte=100)
答案 1 :(得分:1)
似乎这样的事情应该有效:
balances_over_100 = Products.objects.filter(clientproduct__balance__gte=100)
balances_over_100.count()