Skip to content

Instantly share code, notes, and snippets.

@penpenps
Created July 19, 2019 07:57
Show Gist options
  • Save penpenps/6d60ca1665d554bd650fc9f960d99001 to your computer and use it in GitHub Desktop.
Save penpenps/6d60ca1665d554bd650fc9f960d99001 to your computer and use it in GitHub Desktop.
new_menus = []
def update_menu_info(menu, project_id, parent_id=None, order, level=0):
if menu.get('mobile'):
menu.setting.update({'mobile': menu.pop('mobile')})
menu.update({
'project_id': project_id,
'parent_id': parent_id,
'order': order,
'level': level
})
# 将更新过的menu对象存进new_menus列表,并且将单个new_menu对象提交到事务
return project._create_or_update_menu(Menu, menu, with_id=False)
for idx, menu in enumerate(menus):
children = menu.pop('children', [])
new_menu = update_menu_info(menu, project.id, None, idx, 0)
new_menus.append(new_menu)
db.session.add(new_menu)
db.session.flush()
# 如有child_menu对象,也将其存入new_menus列表
new_menus += [update_menu_info(menu, project.id, new_menu.id, cidx, 1) if child_menu.get('mobile') for cidx, child_menu in enumerate(children)]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment