File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -152,16 +152,22 @@ def get_fields(self):
152152 return copy .deepcopy (self .declared_fields )
153153
154154 def adapt (self , data = None ):
155- meta = getattr (self , 'Meta' , None )
156- model_cls = getattr (meta , 'model' , dict )
157- obj = model_cls ()
155+ instance = self .get_instance ()
158156 for field_name , field in self .fields .iteritems ():
159157 value = field .get_attribute (data or self .data )
160158 if value is undefined :
161159 continue
162160 adapted_value = field .adapt (value )
163- if isinstance (obj , collections .Mapping ):
164- obj [field_name ] = adapted_value
161+ if isinstance (instance , collections .Mapping ):
162+ instance [field_name ] = adapted_value
165163 else :
166- setattr (obj , field_name , adapted_value )
167- return obj
164+ setattr (instance , field_name , adapted_value )
165+ return instance
166+
167+ def get_instance (self ):
168+ if self .instance :
169+ return self .instance
170+ else :
171+ meta = getattr (self , 'Meta' , None )
172+ model_cls = getattr (meta , 'model' , dict )
173+ return model_cls ()
You can’t perform that action at this time.
0 commit comments