Example #1
0
 def _cast(self, value):
     if value is None or value == '': return None
     if isinstance( value, reference ): return value
     if isinstance( value, self.referred_table ):
         return reference( value.id, self.referred_table )
     #value is an id that refers to an item in a table
     ret = reference( value, self.referred_table )
     return ret
Example #2
0
 def _cast(self, value):
     if value is None or value == '': return None
     if isinstance(value, reference): return value
     if isinstance(value, self.referred_table):
         return reference(value.id, self.referred_table)
     #value is an id that refers to an item in a table
     ret = reference(value, self.referred_table)
     return ret
Example #3
0
 def _cast(self, value):
     if not value: return None
     if isinstance( value, reference ): return value
     if isinstance( value, self.referred_table ):
         return reference( value.id, self.referred_table )
     #value is the id of a row in the referred table
     if isinstance(value, int) or isinstance(value, long) or isinstance(value, basestring):
         return reference( value, self.referred_table )
     raise ValueError, "%s(%s)" % (type(value), value)
Example #4
0
 def _cast(self, value):
     if value is None: return None
     if isinstance( value, reference ):
         return value
     if isinstance( value, basestring ):
         return self._reference_from_str( value )
     if isinstance( value, Table ):
         return self._cast( (value.__class__, value.id) )
     if isinstance( value, tuple):
         if len(value) != 2:
             raise ValueError, "don't know how to cast %s to a reference" % ( value, )
         table, id = value
         if isinstance(table, basestring):
             table = self.tableRegistry.get( table )
         return reference( id, table )
     if not isinstance(value, reference): 
         raise ValueError, "don't know how to cast %s to a reference" % (value,)
     return reference
Example #5
0
 def _cast(self, value):
     if value is None: return None
     if isinstance(value, reference):
         return value
     if isinstance(value, basestring):
         return self._reference_from_str(value)
     if isinstance(value, Table):
         return self._cast((value.__class__, value.id))
     if isinstance(value, tuple):
         if len(value) != 2:
             raise ValueError, "don't know how to cast %s to a reference" % (
                 value, )
         table, id = value
         if isinstance(table, basestring):
             table = self.tableRegistry.get(table)
         return reference(id, table)
     if not isinstance(value, reference):
         raise ValueError, "don't know how to cast %s to a reference" % (
             value, )
     return reference