Commit 6e3ac5f4 authored by Andrew Godwin's avatar Andrew Godwin
Browse files

Fixed #22847: Optimizer wasn't expecting unresolved FKs

parent 067b9668
Loading
Loading
Loading
Loading
+7 −4
Original line number Diff line number Diff line
from __future__ import unicode_literals

from django.db import migrations
from django.utils import six


class MigrationOptimizer(object):
@@ -205,10 +206,12 @@ class MigrationOptimizer(object):
            # Don't allow optimisations of FKs through models they reference
            if hasattr(other.field, "rel") and other.field.rel:
                for between in in_between:
                    if between.references_model(
                        other.field.rel.to._meta.object_name,
                        other.field.rel.to._meta.app_label,
                    ):
                    if isinstance(other.field.rel.to, six.string_types):
                        object_name, app_label = other.field.rel.to.split(".", 1)
                    else:
                        object_name = other.field.rel.to._meta.object_name
                        app_label = other.field.rel.to._meta.app_label
                    if between.references_model(object_name, app_label):
                        return None
            # OK, that's fine
            return [