#python #django #python-3.x #loops #iteration
#python #django #python-3.x #циклы #итерация
Вопрос:
Python как выполнить итерацию из массива объектов и использовать значения ключей для обновления нескольких записей одновременно. Я хотел обновить несколько строк в таблице, где companyid = company и applicant_id = заявитель, поскольку вы можете видеть значения компании и заявителя в json и установить attached_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:
Вы можете запросить set.update для обновления нескольких строк
DocumentTask.objects.filter(company=company , applicant = applicant).update(is_viewed=True)