mirror of
https://github.com/django/django.git
synced 2025-06-05 11:39:13 +00:00
Refs #36326 -- Fixed QuerySet.raw() crash on models with CompositePrimaryKey on Oracle.
Virtual CompositePrimaryKey fields should be ignored. Regression in 1831f7733d3ef03d1ca7fac3e8d9f4c5e3e3375e.
This commit is contained in:
parent
0596263c31
commit
045110ff30
@ -2077,7 +2077,9 @@ class RawQuerySet:
|
|||||||
"""Resolve the init field names and value positions."""
|
"""Resolve the init field names and value positions."""
|
||||||
converter = connections[self.db].introspection.identifier_converter
|
converter = connections[self.db].introspection.identifier_converter
|
||||||
model_init_fields = [
|
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 = [
|
annotation_fields = [
|
||||||
(column, pos)
|
(column, pos)
|
||||||
@ -2192,10 +2194,13 @@ class RawQuerySet:
|
|||||||
def model_fields(self):
|
def model_fields(self):
|
||||||
"""A dict mapping column names to model field names."""
|
"""A dict mapping column names to model field names."""
|
||||||
converter = connections[self.db].introspection.identifier_converter
|
converter = connections[self.db].introspection.identifier_converter
|
||||||
model_fields = {}
|
return {
|
||||||
for field in self.model._meta.fields:
|
converter(field.column): field
|
||||||
model_fields[converter(field.column)] = field
|
for field in self.model._meta.fields
|
||||||
return model_fields
|
# Fields with None "column" should be ignored
|
||||||
|
# (e.g. CompositePrimaryKey).
|
||||||
|
if field.column
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
class Prefetch:
|
class Prefetch:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user