1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #28289 -- Fixed crash of RawSQL annotations on inherited model fields.

This commit is contained in:
can
2019-07-10 15:07:48 +03:00
committed by Mariusz Felisiak
parent a9c6ab0356
commit 52545e788d
3 changed files with 33 additions and 0 deletions

View File

@@ -699,6 +699,16 @@ class RawSQL(Expression):
def get_group_by_cols(self, alias=None):
return [self]
def resolve_expression(self, query=None, allow_joins=True, reuse=None, summarize=False, for_save=False):
# Resolve parents fields used in raw SQL.
for parent in query.model._meta.get_parent_list():
for parent_field in parent._meta.local_fields:
_, column_name = parent_field.get_attname_column()
if column_name.lower() in self.sql.lower():
query.resolve_ref(parent_field.name, allow_joins, reuse, summarize)
break
return super().resolve_expression(query, allow_joins, reuse, summarize, for_save)
class Star(Expression):
def __repr__(self):