@@ -182,8 +182,8 @@ def extract_relationships(fields, resource):
182182 continue
183183
184184 if isinstance (field , (PrimaryKeyRelatedField , HyperlinkedRelatedField )):
185- model = field .queryset .model
186- relation_type = inflection .pluralize (model .__name__ ).lower ()
185+ relation_model = field .queryset .model
186+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
187187
188188 if resource [field_name ] is not None :
189189 if isinstance (field , PrimaryKeyRelatedField ):
@@ -208,8 +208,16 @@ def extract_relationships(fields, resource):
208208 relation_data = list ()
209209
210210 relation = field .child_relation
211- model = relation .queryset .model
212- relation_type = inflection .pluralize (model .__name__ ).lower ()
211+ queryset = relation .queryset
212+ if queryset is not None :
213+ relation_model = queryset .model
214+ else :
215+ parent_serializer = field .parent
216+ parent_model = parent_serializer .Meta .model
217+ parent_model_relation = getattr (parent_model , field_name )
218+ relation_model = parent_model_relation .related .model
219+
220+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
213221
214222 if isinstance (relation , HyperlinkedRelatedField ):
215223 for link in resource [field_name ]:
@@ -229,8 +237,8 @@ def extract_relationships(fields, resource):
229237 relation_data = list ()
230238
231239 serializer = field .child
232- model = serializer .Meta .model
233- relation_type = inflection .pluralize (model .__name__ ).lower ()
240+ relation_model = serializer .Meta .model
241+ relation_type = inflection .pluralize (relation_model .__name__ ).lower ()
234242
235243 # Get the serializer fields
236244 serializer_fields = get_serializer_fields (serializer )
0 commit comments