Reference API URL : Delete a block
block_id
를 알아야 Delete a block 을 할수 있다는건 다들 예측하셨을겁니다.
특정 block_id
를 콕 집어서 지우기 위해 blocks.children.list
를 호출해보겠습니다.
blocks = notion.blocks.children.list(block_id=page_id)
pprint(blocks)
결과값을 한번 살펴볼까요?
{'block': {},
'has_more': False,
'next_cursor': None,
'object': 'list',
'results': [{'archived': False,
'created_by': {'id': 'edfacc72-eb15-467b-9fdb-d5b656e1c77b',
'object': 'user'},
'created_time': '2022-04-02T11:59:00.000Z',
'has_children': False,
'id': '27b0ad2f-5698-4f7c-ab07-00f174042264',
...
'results'
의 [0]
번째 'id'
값이 첫번째 block
의 id
값입니다.
[1]
번째가 두번째 block
의 id
값이고요, 첫번째 block
을 삭제해보려고 합니다. 그럼 block_id
값을 변수에 입력해 보겠습니다. 그런뒤 delete
를 호출해보겠습니다.
target_block_id = blocks['results'][0]['id']
notion.blocks.delete(block_id=target_block_id)
삭제가 되시는 것을 보실겁니다. 문서 초반을 보시면 archived: True
라는 것을 보셨을 겁니다. archived: true
는 휴지통에 있는 상태를 뜻하며, 이 때 block
을 delete
시도 시 호출은 되나 실제로 삭제가 되지 않습니다. 복원을 해야 삭제를 할 수 있습니다.
복원은 pages.update(page_id=target_page_id, archive=False)
를 호출하셔서 쓰셔서 archive: False
로 바꾸시거나 노션 휴지통에서 복원하셔서 blocks.delete
를 실행해주셔야 해당 block
의 삭제가 가능합니다.