Копировать строку Smartsheet с вложениями - PullRequest
0 голосов
/ 16 апреля 2019

Я продолжаю пытаться скопировать строку с одного листа на другой с вложенными строками.Вложения копируются автоматически при перемещении строк между листами, но не при копировании.В документации API указано, что существует параметр «include», который можно установить на «all», и что это также приведет к копированию вложений.Кто-нибудь захочет предоставить образец этого параметра и как записать его в нечто вроде следующего?

извинения, если это базовый питон.Я новичок в языке и очень плохо знаком с API.

response = smart.Sheets.copy_rows( 
    18382041966468,
    smart.models.CopyOrMoveRowDirective({
        'row_ids': [7372751113086852],
        'to': smart.models.CopyOrMoveRowDestination({
            'sheet_id': 4433677678602116
        })
    })
)

1 Ответ

0 голосов
/ 16 апреля 2019

Атрибут include - это третий аргумент, который вы предоставляете методу copy_rows после CopyOrMoveRowDirective, где вы устанавливаете row_ids и лист назначения. Требуется разделенный запятыми список элементов строки для копирования в дополнение к данным ячейки. Я нашел это, глядя на метод copy_rows в SDK здесь .
Вы также можете просто установить одну строку. Ваш код с include='all' будет выглядеть так:

response = smart.Sheets.copy_rows( 
    18382041966468,
    smart.models.CopyOrMoveRowDirective({
        'row_ids': [7372751113086852],
        'to': smart.models.CopyOrMoveRowDestination({
            'sheet_id': 4433677678602116
        })
    }),
    include='all'
)

Чтобы сделать это с помощью списка для включения, вы можете установить его так:

response = smar_client.Sheets.copy_rows(
  4453526869960580,               # sheet_id of rows to be copied
  smar_client.models.CopyOrMoveRowDirective({
    'row_ids': [1874694623782788],
    'to': smar_client.models.CopyOrMoveRowDestination({
      'sheet_id': 1955951847729028
    })
  }),
  include=['attachments','discussions']
)
...