我有两个模型,需要使用.filter方法匹配两个字段。模型B只有一个唯一的代码,而模型A可以多次使用多个数量的代码。所以模型B的数量应该是模型A中每次出现代码的总和我相信我找到了正确的方法来匹配字段并获得quantity_sum,但是我不确定如何将quantity_sum添加到模型B中的相关代码中
class ModelA():
code = models.IntegerField(default=0)
department = models.CharField(max_length=100)
quantity = models.IntegerField(default=0)
class ModelB():
code = models.IntegerField(default=0)
department = models.CharField(max_length=100)
quantity = models.IntegerField(default=0)
def update_quantity(self):
#calculate sum of quantity from ModelA()
sum_quantity = ModelA.objects.filter(
department=self.department,
code=self.code
).aggregate(
quantity_sum=Sum(F('quantity'))
)
#define save ??
发布于 2017-06-09 20:52:26
请尝试以下操作
class ModelB():
code = models.IntegerField(default=0)
department = models.CharField(max_length=100)
quantity = models.IntegerField(default=0)
def update_quantity(self):
#calculate sum of quantity from ModelA()
sum_quantity = ModelA.objects.filter(
department=self.department,
code=self.code
).aggregate(
quantity_sum=Sum(F('quantity'))
)
self.quantity = sum_quantity["quantity_sum"]
self.save()
https://stackoverflow.com/questions/44466362
复制相似问题