File tree Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Expand file tree Collapse file tree 1 file changed +24
-1
lines changed Original file line number Diff line number Diff line change @@ -178,7 +178,30 @@ def extract_relationships(fields, resource):
178178 continue
179179
180180 # Skip fields without relations
181- if not isinstance (field , (RelatedField , BaseSerializer , ManyRelatedField )):
181+ if not isinstance (field , (RelatedField , ManyRelatedField , BaseSerializer )):
182+ continue
183+
184+ if isinstance (field , (PrimaryKeyRelatedField , HyperlinkedRelatedField )):
185+ model = field .queryset .model
186+ relation_type = inflection .pluralize (model .__name__ ).lower ()
187+
188+ if resource [field_name ] is not None :
189+ if isinstance (field , PrimaryKeyRelatedField ):
190+ relation_id = encoding .force_text (resource [field_name ])
191+ elif isinstance (field , HyperlinkedRelatedField ):
192+ relation_id = extract_id_from_url (resource [field_name ])
193+ else :
194+ relation_id = None
195+
196+ data .update (
197+ {
198+ field_name : {
199+ 'data' : (OrderedDict ([
200+ ('type' , relation_type ), ('id' , relation_id )
201+ ]) if relation_id is not None else None )
202+ }
203+ }
204+ )
182205 continue
183206
184207 if isinstance (field , ManyRelatedField ):
You can’t perform that action at this time.
0 commit comments