def append(self, related): if self.is_source(): args = [self.obj, related, self.relation.name] else: args = [related, self.obj, self.relation.name] ObjectMap.default().connect(*args)
def _clear(self): if self.is_source(): ids = ObjectMap.default().targets(self.obj, self.relation.name) else: ids = ObjectMap.default().sources(self.obj, self.relation.name) for objid in list(ids): ObjectMap.default().disconnect(self.obj, objid, self.relation.name)
def __init__(self, name): self.name = name ObjectMap.default().add(self) self.db[self.__objectid__] = self
def __iter__(self): if self.is_source(): return ObjectMap.default().targets(self.obj, self.relation.name) else: return ObjectMap.default().sources(self.obj, self.relation.name)