Commit 09fcb70c authored by Anssi Kääriäinen's avatar Anssi Kääriäinen
Browse files

Fixed empty strings + to_field regression on Oracle

Querying the reverse side of nullable to_field relation, where both
sides can contain null values resulted in incorrect results. The reason
was not detecting '' as NULL.

Refs #17541
parent 60fff6fc
Loading
Loading
Loading
Loading
+3 −2
Original line number Diff line number Diff line
from operator import attrgetter

from django.db import connection, router
from django.db import connection, connections, router
from django.db.backends import util
from django.db.models import signals, get_model
from django.db.models.fields import (AutoField, Field, IntegerField,
@@ -496,7 +496,8 @@ class ForeignRelatedObjectsDescriptor(object):
                except (AttributeError, KeyError):
                    db = self._db or router.db_for_read(self.model, instance=self.instance)
                    qs = super(RelatedManager, self).get_query_set().using(db).filter(**self.core_filters)
                    if getattr(self.instance, attname) is None:
                    val = getattr(self.instance, attname)
                    if val is None or val == '' and connections[db].features.interprets_empty_strings_as_nulls:
                        return qs.none()
                    qs._known_related_objects = {rel_field: {self.instance.pk: self.instance}}
                    return qs
+1 −1

File changed.

Contains only whitespace changes.