diff options
| author | Bernd Wechner <bernd.wechner@gmail.com> | 2021-09-22 15:53:10 +1000 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2021-10-06 12:33:15 +0200 |
| commit | 2116238d5f2ce19571becb5620ef16ce9048db9f (patch) | |
| tree | 944939c00a338cf4b3ff807119a032859412aa1c /django | |
| parent | 402ae37873974afa5093e6d6149175a118979cd9 (diff) | |
Fixed #33131 -- Improved error messages for clashing reverse accessor names.
Diffstat (limited to 'django')
| -rw-r--r-- | django/db/models/fields/related.py | 8 |
1 files changed, 6 insertions, 2 deletions
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, |
