app/reflistprop/__init__.py
changeset 386 33942ff6e71b
parent 328 275a47dd0ac8
equal deleted inserted replaced
385:6d410bf49a82 386:33942ff6e71b
   119       if not isinstance(value, list):
   119       if not isinstance(value, list):
   120         raise db.BadValueError('Property %s must be a list' %
   120         raise db.BadValueError('Property %s must be a list' %
   121                                self.name)
   121                                self.name)
   122       for item in value:
   122       for item in value:
   123         if not isinstance(item, self.item_type):
   123         if not isinstance(item, self.item_type):
   124             raise db.BadValueError(
   124           raise db.BadValueError(
   125                 'Items in the %s list must all be %s instances' %
   125             'Items in the %s list must all be %s instances' %
   126                 (self.name, self.item_type.__name__))
   126             (self.name, self.item_type.__name__))
   127     return value
   127     return value
   128 
   128 
   129   def empty(self, value):
   129   def empty(self, value):
   130     """Is list property empty.
   130     """Is list property empty.
   131 
   131 
   163       A list of the keys for all Models in the value list.
   163       A list of the keys for all Models in the value list.
   164     """
   164     """
   165     value = self.__get__(model_instance, model_instance.__class__)
   165     value = self.__get__(model_instance, model_instance.__class__)
   166     self.validate(value)
   166     self.validate(value)
   167     if value is None:
   167     if value is None:
   168         return None
   168       return None
   169     else:
   169     else:
   170         return [v.key() for v in value]
   170       return [v.key() for v in value]
   171  
   171  
   172   def make_value_from_datastore(self, value):
   172   def make_value_from_datastore(self, value):
   173     """Recreates the list of Models from the list of keys.
   173     """Recreates the list of Models from the list of keys.
   174  
   174  
   175     Args:
   175     Args:
   177 
   177 
   178     Returns:
   178     Returns:
   179       None or a list of Models.
   179       None or a list of Models.
   180     """ 
   180     """ 
   181     if value is None:
   181     if value is None:
   182         return None
   182       return None
   183     else:
   183     else:
   184         return [db.get(v) for v in value]
   184       return [db.get(v) for v in value]