Python 用django中的dict匹配并减去QuerySet
我有两个变量,包含以下输出: 城市_sum_补充道:Python 用django中的dict匹配并减去QuerySet,python,django,Python,Django,我有两个变量,包含以下输出: 城市_sum_补充道: <QuerySet [{'city': '8000', 'cinnamon__sum': None, 'peber__sum': Decimal('240.00')}, {'city': '9000', 'cinnamon__sum': Decimal('250.00'), 'peber__sum': None}, {'city': '9800', 'cinnamon__sum': Decimal('500.00'), 'peber__
<QuerySet [{'city': '8000', 'cinnamon__sum': None, 'peber__sum': Decimal('240.00')}, {'city': '9000', 'cinnamon__sum': Decimal('250.00'), 'peber__sum': None}, {'city': '9800', 'cinnamon__sum': Decimal('500.00'), 'peber__sum': None}]>
在city\u sum\u added
中,我们看到城市编号(邮政编码),然后是肉桂和肉桂的数量(以小数表示)
在我们的总数中,我们看到城市名称,然后两个小数是肉桂和佩伯(从肉桂开始)
现在我想取我的我们的总数
并将城市与添加的城市总数
中的城市进行匹配,然后用添加的城市总数
减去我们的总数
中肉桂和佩伯的数量
城市的名称和编号来自此模型,在该模型中,您可以在匹配时看到哪些编号属于哪个城市:
class InventoryStatus(models.Model):
CITIES = [
('9800', 'Hjørring'),
('9000', 'Ålborg'),
('7500', 'Holstebro'),
('8000', 'Århus'),
('6700', 'Esbjerg'),
('6230', 'Rødekro'),
('5220', 'Odense'),
('2300', 'København'),
('4682', 'Hovedlageret'),
]
cinnamon = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
peber = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
city = models.CharField(max_length=4, choices=CITIES)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
is_deleted = models.BooleanField(default=False)
def __str__(self):
return self.city
因此,在这种情况下,让我们假设city'8000',Århus'
的最终结果应该是{'city':'8000','肉桂色总和':十进制('-492.50'),'peber_u总和':十进制('220.00')}
,因为我们从无中减去492.50,从240中减去20
我怎样才能做得最聪明
class InventoryStatus(models.Model):
CITIES = [
('9800', 'Hjørring'),
('9000', 'Ålborg'),
('7500', 'Holstebro'),
('8000', 'Århus'),
('6700', 'Esbjerg'),
('6230', 'Rødekro'),
('5220', 'Odense'),
('2300', 'København'),
('4682', 'Hovedlageret'),
]
cinnamon = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
peber = models.DecimalField(max_digits=10, decimal_places=2, null=True, blank=True)
city = models.CharField(max_length=4, choices=CITIES)
created_at = models.DateTimeField(auto_now_add=True)
created_by = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
is_deleted = models.BooleanField(default=False)
def __str__(self):
return self.city