@@ -260,9 +260,6 @@ async def _generate_source_tables_metadata(self) -> List[Dict[str, Any]]:
260260
261261 for field in model ._meta .fields_map .values ():
262262 if isinstance (field , fields .relational .ForeignKeyFieldInstance ):
263- if not isinstance (field .related_name , str ):
264- raise HasuraError (f'`related_name` of `{ field } ` field must be set' )
265-
266263 related_table_name = model_tables [field .model_name ]
267264 field_name = field .model_field_name
268265 metadata_tables [table_name ]['object_relationships' ].append (
@@ -271,18 +268,16 @@ async def _generate_source_tables_metadata(self) -> List[Dict[str, Any]]:
271268 column = field_name + '_id' ,
272269 )
273270 )
274- metadata_tables [related_table_name ]['array_relationships' ].append (
275- self ._format_array_relationship (
276- related_name = field .related_name ,
277- table = table_name ,
278- column = field_name + '_id' ,
271+ if field .related_name :
272+ metadata_tables [related_table_name ]['array_relationships' ].append (
273+ self ._format_array_relationship (
274+ related_name = field .related_name ,
275+ table = table_name ,
276+ column = field_name + '_id' ,
277+ )
279278 )
280- )
281279
282280 elif isinstance (field , fields .relational .ManyToManyFieldInstance ):
283- if not isinstance (field .related_name , str ):
284- raise HasuraError (f'`related_name` of `{ field } ` field must be set' )
285-
286281 related_table_name = model_tables [field .model_name ]
287282 junction_table_name = field .through
288283
@@ -299,13 +294,14 @@ async def _generate_source_tables_metadata(self) -> List[Dict[str, Any]]:
299294 column = table_name + '_id' ,
300295 )
301296 )
302- metadata_tables [related_table_name ]['array_relationships' ].append (
303- self ._format_array_relationship (
304- related_name = f'{ related_table_name } _{ field .related_name } ' ,
305- table = junction_table_name ,
306- column = related_table_name + '_id' ,
297+ if field .related_name :
298+ metadata_tables [related_table_name ]['array_relationships' ].append (
299+ self ._format_array_relationship (
300+ related_name = f'{ related_table_name } _{ field .related_name } ' ,
301+ table = junction_table_name ,
302+ column = related_table_name + '_id' ,
303+ )
307304 )
308- )
309305
310306 else :
311307 pass
0 commit comments