diff options
author | Nick Touran <nick@partofthething.com> | 2021-08-04 13:19:29 -0700 |
---|---|---|
committer | Carlton Gibson <carlton@noumenal.es> | 2021-08-06 11:57:02 +0200 |
commit | 5d4f21b16f002ed5202a68d6977346ccf53b0b0e (patch) | |
tree | 37b2bf5ee9bd6b549020dc34a67bdd3ede217519 /tests/invalid_models_tests | |
parent | 1fb21ab3770bdc07fc847e131fa252759befadd2 (diff) | |
download | django-5d4f21b16f002ed5202a68d6977346ccf53b0b0e.tar.gz |
Fixed #32983 -- Added system check for redundant related_name on symmetrical M2M fields.
Since ManyToManyFields defined with `symmetrical=True` do not add a
related field to the target model, including a `related_name` argument
will never do what the coder likely expects. This makes including
a related_name with a symmetrical model raise a system check warning.
ticket-32983
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r-- | tests/invalid_models_tests/test_relative_fields.py | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py index 8909b12214..6fef14c335 100644 --- a/tests/invalid_models_tests/test_relative_fields.py +++ b/tests/invalid_models_tests/test_relative_fields.py @@ -128,6 +128,20 @@ class RelativeFieldTests(SimpleTestCase): ), ]) + def test_many_to_many_with_useless_related_name(self): + class ModelM2M(models.Model): + m2m = models.ManyToManyField('self', related_name='children') + + field = ModelM2M._meta.get_field('m2m') + self.assertEqual(ModelM2M.check(), [ + DjangoWarning( + 'related_name has no effect on ManyToManyField with ' + 'a symmetrical relationship, e.g. to "self".', + obj=field, + id='fields.W345', + ), + ]) + def test_ambiguous_relationship_model_from(self): class Person(models.Model): pass |