Office365-rest-python-client: ¿Cómo actualizar un solo elemento de la lista?

Creado en 10 may. 2018  ·  4Comentarios  ·  Fuente: vgrem/Office365-REST-Python-Client

Estoy usando el método de actualización de SharePoint listitem.py
item_object.update ()
pero ¿cómo puedo poner los datos que quiero actualizar? por ejemplo:
item_properties = {'__metadata': {'type': 'SP.Data.' + listTitle + 'ListItem'},
'Título': 'elemento nuevo',
'Valor': 99,
}
y luego actualice el elemento ...

question

Comentario más útil

El ejemplo anterior no me funciona: obtuve el código de respuesta 204 sin una actualización real.
La forma correcta: establezca las propiedades del objeto a través del método:

# Open list object from portal
ctx_auth = AuthenticationContext(url=sharepoint_site_url)
ctx = ClientContext(sharepoint_site_url, ctx_auth)
target_list = ctx.web.lists.get_by_title(sharepoint_root_folder_name)

# Fetch list item object by id and set it's properties
item = target_list.get_item_by_id(item_id)
item.set_property('Title', 'new-title')
item.set_property('NewItem', '99')

# Update list item object and send request back to portal
item.update()
ctx.execute_query()

Todos 4 comentarios

Si lo entiendo correctamente, desea actualizar un objeto ya sincronizado con Sharepoint. Así es como lo logré:

    ctx_auth = AuthenticationContext(url=sharepoint_site_url)
    ctx = ClientContext(sharepoint_site_url, ctx_auth)
    target_list = ctx.web.lists.get_by_title(sharepoint_root_folder_name)

    # Fetch item by id and add properties to it.
    item = target_list.get_item_by_id(item_id)
    item.properties.update({
        "NewItem": "99"
    })
    item.update()
    ctx.execute_query()

El ejemplo anterior no me funciona: obtuve el código de respuesta 204 sin una actualización real.
La forma correcta: establezca las propiedades del objeto a través del método:

# Open list object from portal
ctx_auth = AuthenticationContext(url=sharepoint_site_url)
ctx = ClientContext(sharepoint_site_url, ctx_auth)
target_list = ctx.web.lists.get_by_title(sharepoint_root_folder_name)

# Fetch list item object by id and set it's properties
item = target_list.get_item_by_id(item_id)
item.set_property('Title', 'new-title')
item.set_property('NewItem', '99')

# Update list item object and send request back to portal
item.update()
ctx.execute_query()

Resuelto con # 146

¡Gracias por esos ejemplos!
Propongo cerrarlo ya que se resolvió.

¿Fue útil esta página
0 / 5 - 0 calificaciones