From 2116238d5f2ce19571becb5620ef16ce9048db9f Mon Sep 17 00:00:00 2001 From: Bernd Wechner Date: Wed, 22 Sep 2021 15:53:10 +1000 Subject: Fixed #33131 -- Improved error messages for clashing reverse accessor names. --- django/db/models/fields/related.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'django') diff --git a/django/db/models/fields/related.py b/django/db/models/fields/related.py index 8070457088..2e8c87c1b1 100644 --- a/django/db/models/fields/related.py +++ b/django/db/models/fields/related.py @@ -239,7 +239,9 @@ class RelatedField(FieldCacheMixin, Field): if not rel_is_hidden and clash_field.name == rel_name: errors.append( checks.Error( - "Reverse accessor for '%s' clashes with field name '%s'." % (field_name, clash_name), + f"Reverse accessor '{rel_opts.object_name}.{rel_name}' " + f"for '{field_name}' clashes with field name " + f"'{clash_name}'.", hint=("Rename field '%s', or add/change a related_name " "argument to the definition for field '%s'.") % (clash_name, field_name), obj=self, @@ -271,7 +273,9 @@ class RelatedField(FieldCacheMixin, Field): if not rel_is_hidden and clash_field.get_accessor_name() == rel_name: errors.append( checks.Error( - "Reverse accessor for '%s' clashes with reverse accessor for '%s'." % (field_name, clash_name), + f"Reverse accessor '{rel_opts.object_name}.{rel_name}' " + f"for '{field_name}' clashes with reverse accessor for " + f"'{clash_name}'.", hint=("Add or change a related_name argument " "to the definition for '%s' or '%s'.") % (field_name, clash_name), obj=self, -- cgit v1.3