summaryrefslogtreecommitdiff
path: root/tests/invalid_models_tests
diff options
context:
space:
mode:
authorAnthony Joseph <ajosephau@users.noreply.github.com>2024-12-10 06:55:18 +1100
committerMariusz Felisiak <felisiak.mariusz@gmail.com>2025-03-31 22:20:43 +0200
commit6888375c53476011754f778deabc6cdbfa327011 (patch)
treed709910e65f16a28f3886900c7a30f6fd33c5d30 /tests/invalid_models_tests
parent9d5d0e8135a9654aa289cf922fcd00ad5e2a7fe5 (diff)
Fixed #22977 -- Added system check for clashing managers and reverse related fields.
With thanks to Konrad Świat, Loïc Bistuer, Russell Keith-Magee, and Mariusz Felisiak. Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Diffstat (limited to 'tests/invalid_models_tests')
-rw-r--r--tests/invalid_models_tests/test_relative_fields.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/invalid_models_tests/test_relative_fields.py b/tests/invalid_models_tests/test_relative_fields.py
index 5a791d1fcc..82e5a954bd 100644
--- a/tests/invalid_models_tests/test_relative_fields.py
+++ b/tests/invalid_models_tests/test_relative_fields.py
@@ -1537,6 +1537,32 @@ class ExplicitRelatedQueryNameClashTests(SimpleTestCase):
@isolate_apps("invalid_models_tests")
+class RelatedQueryNameClashWithManagerTests(SimpleTestCase):
+ def test_clash_between_related_query_name_and_manager(self):
+ class Author(models.Model):
+ authors = models.Manager()
+ mentor = models.ForeignKey(
+ "self", related_name="authors", on_delete=models.CASCADE
+ )
+
+ self.assertEqual(
+ Author.check(),
+ [
+ Error(
+ "Related name 'authors' for 'Author.mentor' clashes with the name "
+ "of a model manager.",
+ hint=(
+ "Rename the model manager or change the related_name argument "
+ "in the definition for field 'Author.mentor'."
+ ),
+ obj=Author._meta.get_field("mentor"),
+ id="fields.E348",
+ )
+ ],
+ )
+
+
+@isolate_apps("invalid_models_tests")
class SelfReferentialM2MClashTests(SimpleTestCase):
def test_clash_between_accessors(self):
class Model(models.Model):