summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--django/db/models/query.py15
1 files changed, 10 insertions, 5 deletions
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: