diff --git a/django/db/models/query.py b/django/db/models/query.py index 915acb629a..43dd11c7d7 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -2077,7 +2077,9 @@ class RawQuerySet: """Resolve the init field names and value positions.""" converter = connections[self.db].introspection.identifier_converter model_init_fields = [ - f for f in self.model._meta.fields if converter(f.column) in self.columns + field + for column_name, field in self.model_fields.items() + if column_name in self.columns ] annotation_fields = [ (column, pos) @@ -2192,10 +2194,13 @@ class RawQuerySet: def model_fields(self): """A dict mapping column names to model field names.""" converter = connections[self.db].introspection.identifier_converter - model_fields = {} - for field in self.model._meta.fields: - model_fields[converter(field.column)] = field - return model_fields + return { + converter(field.column): field + for field in self.model._meta.fields + # Fields with None "column" should be ignored + # (e.g. CompositePrimaryKey). + if field.column + } class Prefetch: