За занавесом sum(..)
вызовет оператор +
для расчета суммы предметов.
Если один из item['quantity']
s равен None
, то, конечно, ситуацияразворачивается там, где вы добавляете int
с None
, отсюда и ошибка.
Вы можете исправить это, отфильтровав по None
(и нулю, например) с помощью:
sum(<b>filter(None,</b> (item['quantity'] for item in self.cart.values())<b>)</b>)
Хотя, вероятно, полезно посмотреть , почему есть в этих словарях None
, и, таким образом, предотвратить "заражение" словарей None
s.