Расширенный объект Python API SmartSheet - PullRequest
0 голосов
/ 02 сентября 2018

В SmartSheet SDK API есть несколько объектов, которые являются расширениями объектов. Например, CellLink и ObjectValue являются расширениями объекта Cell. Я немного прочитал и понял, что это родительские / дочерние классы, и они включают наследование Однако эта концепция по-прежнему ускользает от меня, и я не могу понять синтаксис для создания объекта CellLink.

new_cell = ss.models.Cell()
linked_cell = ss.models.Cell()
linked_cell.column_id = int(columnid)
linked_cell.sheet_id = int(sheetid)
linked_cell.row_id = int(rowid)
new_cell.link_in_from_cell = linked_cell

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

raise ValueError("`{0}` invalid type for {1} value".format(value, 
self.object_type))
ValueError: `{"columnId": 2068210422966148}` invalid type for <class 
'smartsheet.models.cell_link.CellLink'> value

Мне кажется, я нашел ответ на этот вопрос. Кажется, что вам просто нужно создать словарь атрибутов, таких как:

ex_dict = {sheet_id: 0974792938, column_id: 07263839242, row_id: 
2632938474839}

new_cell.link_in_from_cell = ex_dict

Трюк позже в коде. Вместо создания новой строки, например:

row = ss.models.Row()

Вам необходимо обновить существующую строку, например:

row = ss.Sheets.get_row(sheet_id, row_id)

Однако, у меня все еще есть странная ошибка: Поле \ "createAt \" было неожиданного типа.

1 Ответ

0 голосов
/ 04 сентября 2018

Вы должны отправлять объекты Row и Cell только с теми свойствами, которые вы хотите изменить. Вы не хотите попытаться изменить существующий объект Row (например, с помощью свойства createdAt), а вместо этого выделите новый объект с соответствующим идентификатором строки и ячейками для обновления.

См. https://github.com/smartsheet-samples/python-snippets/blob/04951c2ca8ae1a97386bdd3fa6e010f2845e1421/samples.py#L45 для полного примера создания ссылки на ячейку.

...