cat_sums[cat] += value
TypeError: \'int\' object is not iterable
My input is this:
defaultdict(, {\'composed\'
If anyone is getting this error inside a Django template …
When you do:
{% for c in cat_sums.keys %}
then, behind the scenes, the Django template language first tries a cat_sums['keys']
lookup. Normally this would fail and Django would next look for a method. But since this is a defaultdict
, the default value gets stored instead.
If the dict was created with
cat_sums = defaultdict(int)
What gets executed is:
for c in cat_sums['keys']:
i.e.,
for c in 0:
which quite rightly throws an error as the value 0
is not iterable.
Resolution? Pass dict(cat_sums)
inside the context so the view gets a regular dict
.