@@ -187,8 +187,8 @@ def extract_relationships(fields, resource):
187187 continue
188188
189189 if isinstance (field , (PrimaryKeyRelatedField , HyperlinkedRelatedField )):
190- model = field .queryset .model
191- relation_type = inflection .pluralize (model .__name__ ).lower ()
190+ relation_model = field .queryset .model
191+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
192192
193193 if resource [field_name ] is not None :
194194 if isinstance (field , PrimaryKeyRelatedField ):
@@ -213,8 +213,16 @@ def extract_relationships(fields, resource):
213213 relation_data = list ()
214214
215215 relation = field .child_relation
216- model = relation .queryset .model
217- relation_type = inflection .pluralize (model .__name__ ).lower ()
216+ queryset = relation .queryset
217+ if queryset is not None :
218+ relation_model = queryset .model
219+ else :
220+ parent_serializer = field .parent
221+ parent_model = parent_serializer .Meta .model
222+ parent_model_relation = getattr (parent_model , field_name )
223+ relation_model = parent_model_relation .related .model
224+
225+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
218226
219227 if isinstance (relation , HyperlinkedRelatedField ):
220228 for link in resource [field_name ]:
@@ -234,8 +242,8 @@ def extract_relationships(fields, resource):
234242 relation_data = list ()
235243
236244 serializer = field .child
237- model = serializer .Meta .model
238- relation_type = inflection .pluralize (model .__name__ ).lower ()
245+ relation_model = serializer .Meta .model
246+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
239247
240248 # Get the serializer fields
241249 serializer_fields = get_serializer_fields (serializer )
0 commit comments