Office365-rest-python-client: Comment mettre à jour un seul élément de liste ?

Créé le 10 mai 2018  ·  4Commentaires  ·  Source: vgrem/Office365-REST-Python-Client

J'utilise la méthode de mise à jour de SharePoint listitem.py
item_object.update()
mais comment mettre les données que je veux mettre à jour ? par exemple:
item_properties = {'__metadata': {'type': 'SP.Data.'+listTitle+'ListItem'},
'Titre' : 'nouvel élément',
« Valeur » : 99,
}
puis mettre à jour l'élément...

question

Commentaire le plus utile

L'exemple précédent ne fonctionne pas pour moi - j'ai obtenu le code de réponse 204 sans mise à jour réelle.
La bonne façon - définissez les propriétés de l'objet via la méthode :

# 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()

Tous les 4 commentaires

Si j'ai bien compris, vous souhaitez mettre à jour un objet déjà synchronisé avec Sharepoint. Voici comment j'y suis parvenu :

    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()

L'exemple précédent ne fonctionne pas pour moi - j'ai obtenu le code de réponse 204 sans mise à jour réelle.
La bonne façon - définissez les propriétés de l'objet via la méthode :

# 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()

Résolu avec #146

Merci pour ces exemples !
Je propose de le fermer car a été résolu.

Cette page vous a été utile?
0 / 5 - 0 notes