No validation error when ForeignKey related_name clashes with manager name.
|Reported by:||Russell Keith-Magee||Owned by:||Davide Ceretti|
|Component:||Core (System checks)||Version:||master|
|Has patch:||yes||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||yes|
Consider the following model definition:
class Author(models.Model): authors = models.Manager() name = models.CharField(max_length=100) mentor = models.ForeignKey('self', related_name='authors')
The related name on the the foreign key clashes with the manager, so when you try to issue a query:
you get an error because "Author.authors has no attribute 'filter'".
The problem is order dependent; if you define the manager *after* the foreign key, you get different errors.
I haven't checked what errors you get if you just have the default Manager, and a related_name of 'objects'.
There may also be problems if you have a field named 'objects'.
I suspect this class of problem could be picked up by the system check framework.
Change History (6)
comment:5 Changed 2 years ago by
|Owner:||set to Davide Ceretti|
|Status:||new → assigned|
|Version:||1.6 → master|