diff options
| author | Christopher Medrela <chris.medrela@gmail.com> | 2014-02-15 15:36:07 +0100 |
|---|---|---|
| committer | Baptiste Mispelon <bmispelon@gmail.com> | 2014-02-15 17:24:05 +0100 |
| commit | d0133504e57589dc8983a20bf488e069bddd772c (patch) | |
| tree | 9a5dac3076493121c8d672dbf8d94948ed223af4 /tests/invalid_models_tests/test_relative_fields.py | |
| parent | 65b421c6613dab85039d5d7b9601528ad9e6038c (diff) | |
Fixed #22047 -- detecting related_name clash with inheritance
Thanks to mondone for fruitful colaboration.
Diffstat (limited to 'tests/invalid_models_tests/test_relative_fields.py')
| -rw-r--r-- | tests/invalid_models_tests/test_relative_fields.py | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py index 4853763031..6846ece512 100644 --- a/tests/invalid_models_tests/test_relative_fields.py +++ b/tests/invalid_models_tests/test_relative_fields.py @@ -583,6 +583,35 @@ class AccessorClashTests(IsolatedModelsTestCase): ] self.assertEqual(errors, expected) + def test_m2m_to_m2m_with_inheritance(self): + """ Ref #22047. """ + + class Target(models.Model): + pass + + class Model(models.Model): + children = models.ManyToManyField('Child', + related_name="m2m_clash", related_query_name="no_clash") + + class Parent(models.Model): + m2m_clash = models.ManyToManyField('Target') + + class Child(Parent): + pass + + errors = Model.check() + expected = [ + Error( + 'Accessor for field Model.children clashes with field Child.m2m_clash.', + hint=('Rename field Child.m2m_clash or add/change ' + 'a related_name argument to the definition ' + 'for field Model.children.'), + obj=Model._meta.get_field('children'), + id='E014', + ) + ] + self.assertEqual(errors, expected) + class ReverseQueryNameClashTests(IsolatedModelsTestCase): |
