Персистирование списка внутри объекта 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()

Но не работает, у вас есть идея?

Вернуться на верх