related_name argument not working as expected in Django model?

If you have ForeignKey relationships in an abstract base class every class inheriting from it will have this relationship. As a result of this you must not ‘hardcode’ its related_name, because all sub classes will try to create the same accessor on the realted class (TaskUser in this case).

You should better do something like:

owner = models.ForeignKey(TaskUser, related_name="%(app_label)s_%(class)s_ownership")

See the django docs on this.

Leave a Comment