Loading django/db/migrations/state.py +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ def get_related_models_recursive(model): def _related_models(m): return [ f.related_model for f in m._meta.get_fields(include_parents=True, include_hidden=True) if f.is_relation and not isinstance(f.related_model, six.string_types) if f.is_relation and f.related_model is not None and not isinstance(f.related_model, six.string_types) ] + [ subclass for subclass in m.__subclasses__() if issubclass(subclass, models.Model) Loading docs/releases/1.8.5.txt +2 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,5 @@ Bugfixes * Fixed ``AssertionError`` in some delete queries with a model containing a field that is both a foreign and primary key (:ticket:`24951`). * Fixed a migrations crash with ``GenericForeignKey`` (:ticket:`25040`). tests/migrations/test_state.py +7 −0 Original line number Diff line number Diff line from django.apps.registry import Apps from django.contrib.contenttypes.fields import GenericForeignKey from django.db import models from django.db.migrations.operations import ( AddField, AlterField, DeleteModel, RemoveField, Loading Loading @@ -976,6 +977,12 @@ class RelatedModelsTests(SimpleTestCase): self.assertRelated(S, [A, B, T]) self.assertRelated(T, [A, B, S]) def test_generic_fk(self): A = self.create_model("A", foreign_keys=[models.ForeignKey('B'), GenericForeignKey()]) B = self.create_model("B", foreign_keys=[models.ForeignKey('C')]) self.assertRelated(A, [B]) self.assertRelated(B, [A]) def test_abstract_base(self): A = self.create_model("A", abstract=True) B = self.create_model("B", bases=(A,)) Loading Loading
django/db/migrations/state.py +1 −1 Original line number Diff line number Diff line Loading @@ -45,7 +45,7 @@ def get_related_models_recursive(model): def _related_models(m): return [ f.related_model for f in m._meta.get_fields(include_parents=True, include_hidden=True) if f.is_relation and not isinstance(f.related_model, six.string_types) if f.is_relation and f.related_model is not None and not isinstance(f.related_model, six.string_types) ] + [ subclass for subclass in m.__subclasses__() if issubclass(subclass, models.Model) Loading
docs/releases/1.8.5.txt +2 −0 Original line number Diff line number Diff line Loading @@ -11,3 +11,5 @@ Bugfixes * Fixed ``AssertionError`` in some delete queries with a model containing a field that is both a foreign and primary key (:ticket:`24951`). * Fixed a migrations crash with ``GenericForeignKey`` (:ticket:`25040`).
tests/migrations/test_state.py +7 −0 Original line number Diff line number Diff line from django.apps.registry import Apps from django.contrib.contenttypes.fields import GenericForeignKey from django.db import models from django.db.migrations.operations import ( AddField, AlterField, DeleteModel, RemoveField, Loading Loading @@ -976,6 +977,12 @@ class RelatedModelsTests(SimpleTestCase): self.assertRelated(S, [A, B, T]) self.assertRelated(T, [A, B, S]) def test_generic_fk(self): A = self.create_model("A", foreign_keys=[models.ForeignKey('B'), GenericForeignKey()]) B = self.create_model("B", foreign_keys=[models.ForeignKey('C')]) self.assertRelated(A, [B]) self.assertRelated(B, [A]) def test_abstract_base(self): A = self.create_model("A", abstract=True) B = self.create_model("B", bases=(A,)) Loading