Fixed #21010 -- Changed ModelState to only copy _meta.local_fields.
This commit is contained in:
parent
533d1ab334
commit
34d52fd32e
|
@ -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)))
|
||||
|
|
|
@ -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…
Reference in New Issue