File tree Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Expand file tree Collapse file tree 1 file changed +15
-0
lines changed Original file line number Diff line number Diff line change @@ -824,6 +824,7 @@ def make_DelegatingCaster(postgres):
824824
825825 """
826826 class DelegatingCaster (CompositeCaster ):
827+
827828 def make (self , values ):
828829 if self .name not in postgres .model_registry :
829830
@@ -838,6 +839,20 @@ def make(self, values):
838839 instance = ModelSubclass (record )
839840 return instance
840841
842+ def parse (self , s , curs ):
843+ if s is None :
844+ return None
845+
846+ tokens = self .tokenize (s )
847+ if len (tokens ) != len (self .atttypes ):
848+ # The type has changed, re-fetch it from the DB
849+ self .__dict__ .update (self ._from_db (self .name , curs ).__dict__ )
850+
851+ values = [ curs .cast (oid , token )
852+ for oid , token in zip (self .atttypes , tokens ) ]
853+
854+ return self .make (values )
855+
841856 return DelegatingCaster
842857
843858
You can’t perform that action at this time.
0 commit comments