@@ -128,13 +128,13 @@ def format_value(value, format_type=None):
128128 return value
129129
130130
131- def build_json_resource_obj (fields , resource , resource_name ):
131+ def build_json_resource_obj (fields , resource , resource_instance , resource_name ):
132132 resource_data = [
133133 ('type' , resource_name ),
134134 ('id' , extract_id (fields , resource )),
135135 ('attributes' , extract_attributes (fields , resource )),
136136 ]
137- relationships = extract_relationships (fields , resource )
137+ relationships = extract_relationships (fields , resource , resource_instance )
138138 if relationships :
139139 resource_data .append (('relationships' , relationships ))
140140 # Add 'self' link if field is present and valid
@@ -166,18 +166,6 @@ def get_related_resource_type(relation):
166166 return inflection .pluralize (relation_model .__name__ ).lower ()
167167
168168
169- def get_current_instance (fields , resource ):
170- serializer_instance = fields .serializer .instance
171- if isinstance (serializer_instance , list ):
172- current_id = extract_id (fields , resource )
173- for instance in serializer_instance :
174- # Search for our own instance
175- if encoding .force_text (instance .pk ) == current_id :
176- return instance
177- else :
178- return serializer_instance
179-
180-
181169def extract_id_from_url (url ):
182170 http_prefix = url .startswith (('http:' , 'https:' ))
183171 if http_prefix :
@@ -215,7 +203,7 @@ def extract_attributes(fields, resource):
215203 return format_keys (data )
216204
217205
218- def extract_relationships (fields , resource ):
206+ def extract_relationships (fields , resource , resource_instance ):
219207 data = OrderedDict ()
220208 for field_name , field in six .iteritems (fields ):
221209 # Skip URL field
@@ -230,7 +218,7 @@ def extract_relationships(fields, resource):
230218 # special case for HyperlinkedRouterField
231219 relation_data = list ()
232220 relation_type = get_related_resource_type (field )
233- related = getattr (get_current_instance ( fields , resource ) , field_name ).all ()
221+ related = getattr (resource_instance , field_name ).all ()
234222 for relation in related :
235223 relation_data .append (OrderedDict ([('type' , relation_type ), ('id' , relation .pk )]))
236224
0 commit comments