Я собираю данные из некоторых django моделей в очень конкретном c порядке и выводю их в json для использования в React.
quiz = LessonQuiz.objects.filter(lesson=details).order_by('position')
quizdata = []
if quiz.count() > 0:
for a in quiz:
qz = LessonQuiz.objects.get(id=a.id)
item = {'id': qz.id, 'title': qz.title}
if qz.linkbutton_set.count() > 0:
buttons = qz.linkbutton_set.all()
for b in buttons:
item[b.id] = {
"id": b.id,
"type": b.qtype,
"text": b.text,
"link": b.link,
"color": b.color
}
quizdata.append(item)
в тот момент, когда он возвращает все данные, которые я хочу следующим образом:
[
{
"id": 3,
"title": "Do you agree?",
"1": {
"id": 1,
"type": "btn",
"text": "I agree",
"link": "/lesson/welcome/completed",
"color": "#e2574c"
},
"2": {
"id": 2,
"type": "btn",
"text": "I'm not sure I agree",
"link": "/contact",
"color": "#e2574c"
},
"3": {
"id": 3,
"type": "btn",
"text": "I have a suggestion",
"link": "/contact",
"color": "#e2574c"
}
}
]
Однако, в идеале, я хотел бы иметь массивы 1, 2 и 3 в своем собственном массиве, например, data.
[
{
'id': 3,
'title': 'Do you agree?',
'data': [
1: {
'id': 1,
'type': 'btn',
'text': 'I agree',
'link': '/lesson/welcome/completed',
'color': '#e2574c'
},
2: {
'id': 2,
'type': 'btn',
'text': "I'm not sure I agree",
'link': '/contact',
'color': '#e2574c'
},
3: {
'id': 3,
'type': 'btn',
'text': 'I have a suggestion',
'link': '/contact',
'color': '#e2574c'
}
]
}
]
Любые рекомендации, как я могу достичь это?
В качестве альтернативы, есть ли еще Django способ достичь этого?
Заранее спасибо