Как обновить объект 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
Другие вопросы по тегам