diff --git a/tortoise/query_utils.py b/tortoise/query_utils.py index efaab4989..6adda664d 100644 --- a/tortoise/query_utils.py +++ b/tortoise/query_utils.py @@ -37,6 +37,7 @@ def get_joins_for_related_field( related_table: Table = related_field.related_model._meta.basetable if isinstance(related_field, ManyToManyFieldInstance): through_table = Table(related_field.through) + related_table = related_table.as_(f"{table.get_table_name()}__{related_field_name}") required_joins.append( ( through_table, @@ -124,6 +125,10 @@ def resolve_nested_field( related_table = related_table.as_( f"{table.get_table_name()}__{iter_field.model_field_name}" ) + if isinstance(related_field, ManyToManyFieldInstance): + related_table = related_table.as_( + f"{table.get_table_name()}__{iter_field.model_field_name}" + ) table = related_table last_field = fields[-1] @@ -141,6 +146,10 @@ def resolve_nested_field( related_table = related_table.as_( f"{table.get_table_name()}__{related_field.model_field_name}" ) + if isinstance(related_field, ManyToManyFieldInstance): + related_table = related_table.as_( + f"{table.get_table_name()}__{related_field.model_field_name}" + ) term = related_table[related_field_meta.db_pk_column] else: