diff options
Diffstat (limited to 'django/db/models/query.py')
| -rw-r--r-- | django/db/models/query.py | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/django/db/models/query.py b/django/db/models/query.py index 6051b9f859..725c04caca 100644 --- a/django/db/models/query.py +++ b/django/db/models/query.py @@ -1416,9 +1416,12 @@ def get_cached_row(row, index_start, using, klass_info, offset=0, klass, field_names, field_count, related_fields, reverse_related_fields, pk_idx = klass_info fields = row[index_start:index_start + field_count] - # If the pk column is None (or the Oracle equivalent ''), then the related + # If the pk column is None (or the equivalent '' in the case the + # connection interprets empty strings as nulls), then the related # object must be non-existent - set the relation to None. - if fields[pk_idx] is None or fields[pk_idx] == '': + if (fields[pk_idx] is None or + (connections[using].features.interprets_empty_strings_as_nulls and + fields[pk_idx] == '')): obj = None elif field_names: fields = list(fields) |
