У меня есть два следующих набора запросов:
opus = Work_Music.objects.filter(composerwork__person=self.kwargs['pk'], level=0).order_by('date_completed')
event = LifeEvent.objects.filter(person=self.kwargs['pk']).order_by('date_end')
Первый извлекает работу композитора, а второй - события его жизни.
Я хочу создать вложенный словарь:Первый уровень указывается по году. Второй уровень имеет две клавиши «работа» и «жизнь». Это должен быть список значений, потому что в данном году может быть несколько работ и событий.
Я написал следующее:
# timeline = defaultdict(list)
timeline = dict()
for o in opus:
if o.date_comp_f not in timeline:
timeline[o.date_comp_f] = {}
timeline[o.date_comp_f]['work'] = {}
timeline[o.date_comp_f]['work'].append(o)
else:
timeline[o.date_comp_f]['work'].append(o)
for e in event:
if e.date_end_y not in timeline:
timeline[e.date_end_y] = {}
timeline[e.date_end_y]['life'] = {}
timeline[e.date_end_y]['life'].append(e)
else:
timeline[e.date_end_y]['life'].append(e)
timeline = dict(timeline)
Я также хочу отсортировать ключ первого уровня вхронологический порядок. Как мне это сделать? Я продолжаю получать сообщения об ошибках.