def _update_keys(self, model, unique_keys):
keys_set = {(k, v) for k, values in unique_keys.items() for v in values}
existing = {
(key.name, key.value)
for key in model.unique_keys
}
to_remove = existing - keys_set
to_add = keys_set - existing
session = self.DBSession()
for pk in to_remove:
key = session.query(Key).get(pk)
session.delete(key)
for name, value in to_add:
key = Key(rid=model.rid, name=name, value=value)
session.add(key)
return to_add, to_remove
评论列表
文章目录