ORM queries are more readable and relationships more explicit when
related_name is specified.
The related_name attribute specifies the name of the reverse relation from the related model back to the model.
Django automatically creates a related_name if related_name is not set. Django uses the lower-case name of the model with the suffix _set.
So in practice, do this
class UniversityStudent(models.Model): grades = models.ForeignKey( Grade, related_name='students' ) for student in Grade.students.all(): ...
Instead of this
class UniversityStudent(models.Model): grades = models.ForeignKey(Grade) for student in Grade.universitystudent_set.all(): ...
pip install django-doctor.
Django Doctor will run this check by default. No configuration is needed but the check can be turned on/off using check code
missing-related-name in your pyproject.toml file.