@@ -150,48 +150,39 @@ def process_db_items_and_create_prepare(
150150 for parent_db_item in parent_db_items :
151151 cache_key = (str (parent_db_item .id ), previous_resource_type )
152152 current_db_item = getattr (parent_db_item , related_field_name )
153- if isinstance (current_db_item , Iterable ):
154- relationship_data_items = []
155-
156- for db_item in current_db_item :
157- next_current_db_item .append (db_item )
158- data_for_relationship , new_included = process_db_item (
159- related_db_item = db_item ,
160- )
161-
162- cls .update_known_included (
163- included_objects = included_objects ,
164- new_included = new_included ,
165- )
166- relationship_data_items .append (data_for_relationship )
167-
168- cls .update_related_object (
169- relationship_data = relationship_data_items ,
170- relationships_schema = relationships_schema ,
171- object_schema = object_schema ,
172- included_objects = included_objects ,
173- cache_key = cache_key ,
174- related_field_name = related_field_name ,
175- )
176- else :
177- next_current_db_item .append (current_db_item )
153+ current_is_single = False
154+ if not isinstance (current_db_item , Iterable ):
155+ # hack to do less if/else
156+ current_db_item = [current_db_item ]
157+ current_is_single = True
158+ relationship_data_items = []
159+
160+ for db_item in current_db_item :
161+ next_current_db_item .append (db_item )
178162 data_for_relationship , new_included = process_db_item (
179- related_db_item = current_db_item ,
163+ related_db_item = db_item ,
180164 )
181165
182166 cls .update_known_included (
183167 included_objects = included_objects ,
184168 new_included = new_included ,
185169 )
170+ relationship_data_items .append (data_for_relationship )
171+
172+ if current_is_single :
173+ # if initially was single, get back one dict
174+ # hack to do less if/else
175+ relationship_data_items = relationship_data_items [0 ]
176+
177+ cls .update_related_object (
178+ relationship_data = relationship_data_items ,
179+ relationships_schema = relationships_schema ,
180+ object_schema = object_schema ,
181+ included_objects = included_objects ,
182+ cache_key = cache_key ,
183+ related_field_name = related_field_name ,
184+ )
186185
187- cls .update_related_object (
188- relationship_data = data_for_relationship ,
189- relationships_schema = relationships_schema ,
190- object_schema = object_schema ,
191- included_objects = included_objects ,
192- cache_key = cache_key ,
193- related_field_name = related_field_name ,
194- )
195186 return next_current_db_item
196187
197188 def process_include_with_nested (
0 commit comments