示例#1
0
def set_related_links():
    with open('/tmp/related_links.json', 'r', encoding='utf-8') as ifile:
        dicts = json.loads(ifile.read())
        print('Setting related links/grows with...')
        for d in dicts:
            cn = CommonName.from_slugs(
                d['source']['idx_slug'],
                d['source']['cn_slug']
            )
            if d['target']['anchor']:
                t = Cultivar.from_slugs(
                    d['target']['idx_slug'],
                    d['target']['cn_slug'],
                    d['target']['anchor']
                )
                if t:
                    cn.gw_cultivars.append(t)
                else:
                    t = Section.from_slugs(
                        d['target']['idx_slug'],
                        d['target']['cn_slug'],
                        d['target']['anchor']
                    )
                    if t:
                        cn.gw_sections.append(t)
                    else:
                        print(
                            'Could not find a Section or Cultivar with the '
                            'slug: "{}"'.format(d['target']['anchor'])
                        )
                        t = CommonName.from_slugs(
                            d['target']['idx_slug'],
                            d['target']['cn_slug']
                        )
                        cn.gw_common_names.append(t)
            else:
                t = CommonName.from_slugs(
                    d['target']['idx_slug'],
                    d['target']['cn_slug']
                )
                if t:
                    cn.gw_common_names.append(t)
                else:
                    print('Could not find gw for {}'.format(d))
            if t:
                print(
                    '"{}" grows with the {} "{}"'
                    .format(cn.name, t.__class__.__name__, t.name)
                )
        db.session.commit()