Exemplo n.º 1
0
 def append(self, hcont, value, score=None):
     if self.field.owned:
         assert value.oid is None
         self.element_writer.create(value)
         assert value.oid is not None
         value = value.handle()
     ContainerWriter.append(self, hcont, value, score)
Exemplo n.º 2
0
 def __init__(self, field, element_writer=None):
     assert (not field.owned and element_writer is None) or (field.owned and element_writer is not None)
     self.field = field
     self.element_writer = element_writer
     index_key = None
     if field.indexed:
         index_key = "u:" if field.unique else "i:"
         index_key += field.model.__name__ + ":" + field.name
     ContainerWriter.__init__(self, field.target_type, index_key, field.unique)
Exemplo n.º 3
0
 def remove(self, hcont, value):
     assert (not self.field.owned) or isinstance(value, Model)
     removed = ContainerWriter.remove(self, hcont, value)
     if self.field.owned:
         if not removed:
             raise NotFoundError("{0} in {1}".format(value.handle(), hcont))
         assert value.oid is not None
         self.element_writer.delete(value)
         assert value.oid is None