def _update_rels(self, model, links):
session = self.DBSession()
source = model.rid
rels = {(k, uuid.UUID(target)) for k, targets in links.items() for target in targets}
existing = {
(link.rel, link.target_rid)
for link in model.rels
}
to_remove = existing - rels
to_add = rels - existing
for rel, target in to_remove:
link = session.query(Link).get((source, rel, target))
session.delete(link)
for rel, target in to_add:
link = Link(source_rid=source, rel=rel, target_rid=target)
session.add(link)
return to_add, to_remove
评论列表
文章目录