Kaydet (Commit) baff4dd3 authored tarafından Andrew Nester's avatar Andrew Nester Kaydeden (comit) Tim Graham

Fixed #25292 -- Fixed crash in ManyToManyField.through_fields check.

üst 490107f1
......@@ -1687,6 +1687,10 @@ class Model(six.with_metaclass(ModelBase)):
)
for f in cls._meta.local_many_to_many:
# Skip nonexistent models.
if isinstance(f.remote_field.through, six.string_types):
continue
# Check if auto-generated name for the M2M field is too long
# for the database.
for m2m in f.remote_field.through._meta.local_fields:
......
......@@ -307,6 +307,22 @@ class RelativeFieldTests(SimpleTestCase):
]
self.assertEqual(errors, expected)
def test_missing_relationship_model_on_model_check(self):
class Person(models.Model):
pass
class Group(models.Model):
members = models.ManyToManyField('Person', through='MissingM2MModel')
self.assertEqual(Group.check(), [
Error(
"Field specifies a many-to-many relation through model "
"'MissingM2MModel', which has not been installed.",
obj=Group._meta.get_field('members'),
id='fields.E331',
),
])
@isolate_apps('invalid_models_tests')
def test_many_to_many_through_isolate_apps_model(self):
"""
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment