API REST для онлайн-SharePoint: публикация полезных данных для создания нового элемента с полем с несколькими вариантами выбора - PullRequest
0 голосов
/ 23 октября 2019

Я использую онлайн-библиотеку Python sharePoint - Office365-REST-Python-Client для создания нового элемента списка. Я могу успешно создать новый список.

Когда я пытаюсь создать новый список с полем с несколькими вариантами (думаю, что это настраиваемое поле), я получаю сообщение об ошибке.

Полезная нагрузка:

{'__metadata': {'type': 'SP.Data.MyListItem'}, 'Title': 'Task Created by Python Script',
                           'CategoryDescription': 'This is a test Task created by Python script  with the help of Office 365 library.',                               
                           'Multichoicefield':{
                               '__metadata' : {'type' : 'Collection(Edm.String)' },
                               'results': ['value1', 'value2']
                               }
                           }

При работе с вышеуказанной полезной нагрузкой получите An open collection property 'Multichoicefield' was found. In OData, open collection properties are not supported.", "400 Client Error: Bad Request for url:

Похоже, OData перестала поддерживать это. Кто-нибудь знает, как создать с полем с множественным выбором

1 Ответ

0 голосов
/ 24 октября 2019

Проверьте настройки поля «Multichoicefield», как показано на скриншотах ниже.

enter image description here

И попробуйте использовать REST API с JavaScript в веб-части редактора сценариевна странице SharePoint, чтобы проверить, работает ли он.

<script src="https://code.jquery.com/jquery-1.12.4.min.js" type="text/javascript"></script>
<script type="text/javascript">
var listName="CustomList";
function AddListItem(){
    var itemType = GetItemTypeForListName(listName);
    var item = {
        '__metadata': {'type': itemType },
        'Title': 'test',
        'Multichoicefield':{
           '__metadata' : {'type' : 'Collection(Edm.String)' },
           'results': ['value1', 'value2']
        }
    };

    $.ajax({
        url: _spPageContextInfo.siteAbsoluteUrl + "/_api/web/lists/getbytitle('" + listName + "')/items",
        type: "POST",
        contentType: "application/json;odata=verbose",
        data: JSON.stringify(item),
        headers: {
            "Accept": "application/json;odata=verbose",
            "X-RequestDigest": $("#__REQUESTDIGEST").val()
        },
        success: function (data) {
            alert("succeeded.");
        },
        error: function (data) {
            alert(JSON.stringify(data));
        }
    });
}
function GetItemTypeForListName(name) {
    return "SP.Data." + name.charAt(0).toUpperCase() + name.split(" ").join("").slice(1) + "ListItem";
}  
</script>
<input type="button" onclick="AddListItem()" value="Add"/>

Если JavaScript с REST API работает в вашей среде, вам нужно проверить код на python.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...