Как сделать транзакцию django для набора кода, включая запросы, а также локальные операции

permissionIds = [1,2...]

try:

with transaction.atomic():
 RolePermissionMap.objects.bulk_create([
    RolePermissionMap(role_id=role.id, permission_id=id) for id in permissionIds])
  
  rolePermissionsMap[roleId] = permissionIds
  # map should NOT update if the insert fails
  return Response({"ok": 1}, status=200)

except: return Response({"ok": 0}

В моем коде, мне нужно создать несколько raws за раз, в случае если один из заданных идентификаторов разрешения не работает, он не должен делать следующий шаг, который сохраняет некоторые данные в dict. (это не транзакция db, поэтому он не может откатиться).

как я могу сделать это эффективно?

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