Loading django/db/migrations/state.py +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ class ModelState(object): """ # Deconstruct the fields fields = [] for field in model._meta.fields: for field in model._meta.local_fields: name, path, args, kwargs = field.deconstruct() field_class = import_by_path(path) fields.append((name, field_class(*args, **kwargs))) Loading tests/migrations/test_state.py +19 −0 Original line number Diff line number Diff line Loading @@ -75,3 +75,22 @@ class StateTests(TestCase): new_app_cache = project_state.render() self.assertEqual(new_app_cache.get_model("migrations", "Tag")._meta.get_field_by_name("name")[0].max_length, 100) self.assertEqual(new_app_cache.get_model("migrations", "Tag")._meta.get_field_by_name("hidden")[0].null, False) def test_render_multiple_inheritance(self): # Use a custom app cache to avoid polluting the global one. new_app_cache = BaseAppCache() class Book(models.Model): title = models.CharField(max_length=1000) class Meta: app_label = "migrations" app_cache = new_app_cache class Novel(Book): class Meta: app_label = "migrations" app_cache = new_app_cache yet_another_app_cache = BaseAppCache() ModelState.from_model(Novel).render(yet_another_app_cache) Loading
django/db/migrations/state.py +1 −1 Original line number Diff line number Diff line Loading @@ -70,7 +70,7 @@ class ModelState(object): """ # Deconstruct the fields fields = [] for field in model._meta.fields: for field in model._meta.local_fields: name, path, args, kwargs = field.deconstruct() field_class = import_by_path(path) fields.append((name, field_class(*args, **kwargs))) Loading
tests/migrations/test_state.py +19 −0 Original line number Diff line number Diff line Loading @@ -75,3 +75,22 @@ class StateTests(TestCase): new_app_cache = project_state.render() self.assertEqual(new_app_cache.get_model("migrations", "Tag")._meta.get_field_by_name("name")[0].max_length, 100) self.assertEqual(new_app_cache.get_model("migrations", "Tag")._meta.get_field_by_name("hidden")[0].null, False) def test_render_multiple_inheritance(self): # Use a custom app cache to avoid polluting the global one. new_app_cache = BaseAppCache() class Book(models.Model): title = models.CharField(max_length=1000) class Meta: app_label = "migrations" app_cache = new_app_cache class Novel(Book): class Meta: app_label = "migrations" app_cache = new_app_cache yet_another_app_cache = BaseAppCache() ModelState.from_model(Novel).render(yet_another_app_cache)