Django - Сравнивайте Queryset с данными JSON для выполнения операций обновления
У меня есть динамическая форма в формате JSON. При добавлении ввода данные JSON имеют больше элементов, чем Queryset. При удалении ввода данные JSON имеют меньше элементов, чем Queryset.
Мой код выглядит следующим образом:
selectedUserForm = UserMeta.objects.filter(user=selectedUser, isDeleted = False)
for form in selectedUserForm:
if getJson['Id'] == form.id:
formData = UserMeta.objects.filter(id=form.id).update(metaVal=getJson['Input'].title(), metaKey=getJson['Label']title())
elif getJson['Id'] == 0:
formData = UserMeta(user = selectedUser, metaVal=getJson['Input'].title(), metaKey=form.Label.title())
try:
formData.full_clean()
formData.save()
output.append({'Dynamic Form: Added! ': str(formData)})
except ValidationError as e:
output.append({'Error': e})
return HttpResponse(e)
elif getJson['Id'] != form.id:
formData = UserMeta.objects.filter(id=form.id).update(isDeleted = True)
Не работает, потому что нет итерации для переменной JSON, но когда я добавляю счетчик для итерации данных JSON, он выдает ошибку "JSON data out of index", если данные JSON содержат меньше элементов. Также, если в JSON больше данных, итерация не может добраться до этих элементов. Каков правильный подход к выполнению операции обновления?