Python как перебирать массивы объектов и использовать значения ключей для обновления нескольких записей одновременно - PullRequest
0 голосов
/ 21 марта 2019

Python, как перебирать массив объектов и использовать значения ключей для обновления нескольких записей одновременно.Я хотел обновить несколько строк в таблице, где companyid = company иant_id_priant = заявитель, так как вы можете увидеть значение компании и заявителя в json и установить значение attach_document_ins.is_viewed равным проверенному значению на основе идентификатора задачи.https://imgur.com/a/nttq6XT (строки таблицы)

код

def post(self, request):
    data = request.data
    print("Response Data :" , data)
    try:

         for item in data['tasklist']:
            company = item['company']
            applicant = item['applicant']
            hey = item['checked']

        attached_document_ins = DocumentTask.objects.filter(company=company , applicant = applicant)
        for attached_document_ins in attached_document_ins:
            attached_document_ins.is_viewed = True
        attached_document_ins.save()
        return Response("Success", status=status.HTTP_200_OK)
    except DocumentTask.DoesNotExist:
        return Response("Failed.", status=status.HTTP_400_BAD_REQUEST)

данные

{
   'tasklist':[
        {
            'company':6,
            'checked':True,
            'files':[

            ],
            'applicant':159,
            'id':35,
            'task':'s'
        },
        {
            'company':6,
            'checked':True,
            'files':[

            ],
            'applicant':159,
            'id':36,
            'task':'ss'
        },
        {
            'company':6,
            'checked':True,
            'files':[

            ],
            'applicant':159,
            'id':37,
            'task':'sss'
      }
   ]
}

1 Ответ

1 голос
/ 21 марта 2019

Вы можете queryset.update обновить несколько строк

DocumentTask.objects.filter(company=company , applicant = applicant).update(is_viewed=True)
...