def generate_sections(cn, l): for d in l: sec = Section.get_or_create(d['name'], cn) db.session.add(sec) sec.botanical_names = d['botanical_names'] sec.subtitle = d['subtitle'] sec.description = d['description'] if d['thumbnail']: sec.thumbnail = download_image(d['thumbnail']) sec.cultivars = list(generate_cultivars(cn, d['cultivars'])) sec.children = list(generate_sections(cn, d['subsections'])) db.session.flush() sec.child_cultivars.reorder() sec.children.reorder() yield sec