Я пытался обновить custom_fields в соответствии с последней версией API Asana, очень похоже на это сообщение, но с более поздней версией API (например, мне нужно использовать метод update_task). Я могу обновлять поля на верхнем уровне задачи, но объект custom_fields обновить гораздо сложнее. Например, у меня есть много настраиваемых полей, и я пытаюсь обновить тестовое поле с именем «Обновить» и просто установить для text_value значение Hello...
import asana
asanaPAT = 'myToken'
client = asana.Client.access_token(asanaPAT)
result = client.tasks.get_tasks({'project': 'myProjectID'}, opt_pretty=True)#, iterator_type=None)
for index, result in enumerate(result):
complete_task = client.tasks.find_by_id(result["gid"])
task_name = complete_task['name']
task_id = complete_task['gid']
custom_fields = complete_task['custom_fields']
#I can easily update top-level fields like 'name' and 'completed'...
#result = client.tasks.update_task(task_id, {'name': task_name + '(new)'}, opt_pretty=True)
#result = client.tasks.update_task(task_id, {'completed': False}, opt_pretty=True)
for custom_fieldsRow in custom_fields:
if custom_fieldsRow['name'] == "Updated":
#custom_fieldsRow['text_value'] = 'Hello'
#finished loop through individual custom fields, so update on the level of the task...
#client.tasks.update_task(task_id, {custom_fields}, opt_pretty=True)
manualCustomField = {'data': { 'custom_fields': {'gid': 'theGIDOfCustomField', 'text_value': 'Hello'} }}
resultFromUpdate = client.tasks.update_task(task_id, manualCustomField, opt_pretty=True)
Как вы можете видеть выше, я начал с попытки пройти через custom_fields и внести изменения в конкретное поле перед обновлением позже. Но теперь я даже пытаюсь вручную установить данные custom_field (последняя строка моего кода), но это ничего не делает (нет ошибки, но не меняет мою задачу). У меня совершенно нет идей по устранению неполадок, поэтому ценю любые отзывы о том, где я ошибаюсь.