Извините за это, но у Django есть utils.datastructures.DotExpandedDict. Вот часть документов:
>>> d = DotExpandedDict({'person.1.firstname': ['Simon'], \
'person.1.lastname': ['Willison'], \
'person.2.firstname': ['Adrian'], \
'person.2.lastname': ['Holovaty']})
>>> d
{'person': {'1': {'lastname': ['Willison'], 'firstname': ['Simon']}, '2': {'lastname': ['Holovaty'], 'firstname': ['Adrian']}}}
Единственная разница в том, что вы используете точки вместо скобок.
РЕДАКТИРОВАТЬ: этот механизм был заменен префиксами форм, но вот старый код, который вы можете добавить в свое приложение, если вы все еще хотите использовать эту концепцию:
https://gist.github.com/grzes/73142ed99dc8ad6ac4fc9fb9f4e87d60