Персистирование списка внутри объекта Django Rest Framework
Я пытаюсь сохранить список объектов python (dico) таким образом, но это сложно
{
"leader": {
"nameLastname": "AAAAA"
},
"employeeRemun": {
"grossSalaryBase": 111,
"bonuses": 222,
"travellingExpenses": 333,
"noRemuneration": false
},
"abandonmentCurrentAccount": {
"abandonDate": "2023-10-20",
"partner": "BBB",
"amount": 444,
"recoveryDate": "2023-10-04",
"recoveryAmount": 5555,
"abortTime": "-16 jours"
},
"commentReviewDuring": {
"review": "COMMENT DURING"
},
"commentReviewAfter": {
"review": "COMMENT AFTER"
},
"list_benefits": [
{
"natureAvantage": {
"actualAmount": 42354,
"previousAmount": 53234
},
"leaderAvantage": {
"nameLastname": "AAAAA"
},
"typeAvantage": {
"benefitType": "Private Jet"
}
},
{
"natureAvantage": {
"actualAmount": 43532,
"previousAmount": 4324
},
"leaderAvantage": {
"nameLastname": "AAAAA"
},
"typeAvantage": {
"benefitType": "Rolls Royce"
}
}
]
}
Метод исправления: В начале я пытаюсь сделать это, но не нахожу, как получить доступ к индексу списка ('HERE') :
Я пытаюсь получить доступ к элементу внутри запроса с помощью request.data.get(...), но для natureAvantage это не {}, а [], к которому нужно получить доступ по индексу
for indexLls in llsByIdSerialized.data['naturalBenefits']:
benefitTypeById = AvantageNatureDirigeant.objects.get(id=indexLls)
benefitRefresh = LeaderBenefeitTypeSerilizer(instance=benefitTypeById, data=request.data.get('remSection', {}).get('list_benefits', {}).get('natureAvantage', {}(''HERE index)))
if benefitRefresh.is_valid():
benefitRefresh.save()
Так что я пытаюсь сделать вот это :
Создайте отдельный объект
for index, benefit_data in enumerate(request.data.get('remSection', {}).get('list_benefits', [])):
actual_amount = benefit_data.get('natureAvantage', {}).get('actualAmount')
previous_amount = benefit_data.get('natureAvantage', {}).get('previousAmount')
data_to_serialize = {
'actualAmount': actual_amount,
'previousAmount': previous_amount,
}
benefitTypeById = AvantageNatureDirigeant.objects.get(id=llsByIdSerialized.data['naturalBenefits'][index])
benefit_refresh = LeaderBenefeitTypeSerilizer(instance=benefitTypeById,data=data_to_serialize)
if benefit_refresh.is_valid():
benefit_refresh.save()
Но не работает, у вас есть идея?