Как обновить объект Predecessor или PredecessorList в Smartsheet Python SDK
У меня есть цикл, который создает родительскую строку и переменное количество дочерних строк. Я хотел бы обновить поле Predecessor дочерней строки с номером предыдущей дочерней строки (когда добавлено более одной дочерней строки). У меня возникают трудности при добавлении 2 обязательных аргументов к объекту "cell.object_value" (object_type & precessors).
for key, value in record.items():
new_cell = ss.models.Cell()
if k == 'Predecessors':
pred = []
pred_update = {}
pred_update['rowId'] = predecessor_row_id
pred_update['type'] = 'FS'
pred.append(pred_update)
row = ss.Sheets.get_row(sheet_id, predecessor_row_id)
new_cell.object_value = str(row.row_number)
new_cell.object_value.predecessors = pred
new_cell.object_type = "PREDECESSOR_LIST"
РЕДАКТИРОВАТЬ: код выполняется без ошибок, однако информация, содержащаяся в аргументе new_cell.object_value.predecessors не передается в SmartSheet.
2 ответа
Установка предшественников немного сложнее. Вы были на правильном пути. Однако, когда вы устанавливаете значение в ячейке, вам просто нужно установить object_value
, Как это:
# init the object_value for predecessor cell
pred_cell.object_value = ss_client.models.ObjectValue()
# set the object_type to PREDECESSOR_LIST
pred_cell.object_value.object_type = "PREDECESSOR_LIST"
# set the object_value for the cell with the PredecessorList
pred_cell.object_value = pred_list
Полный суть операции можно найти здесь.
predecessors
является свойством значения объекта, а не ячейки напрямую.
new_cell.objectValue.predecessors = pred