Python 用django中的dict匹配并减去QuerySet

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__

我有两个变量,包含以下输出:

城市_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__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