While programming I have found that several folks have trouble with the reverse lookup property when creating models in code. For example:

class ModelA(models.Model):
    some_column = models.CharField(max_length=1024)


class ModelB(models.Model):
    parent = models.ForeignKey(ModelA, blank=True, null=True, related_name='?????')

Ideally we want to be able to get the children of any given ModelA record. Django gives them to us as a queryset. But if the related_name is set to something that doesnt represent what is happenening the resulting code can be very confusing.

The only real trick (aside from looking at the documentation) is to remember that the related_name property is for the specified model, not the current model. Changing the '?????' to 'children' we can get allow for some very nice looking code:

class ModelA(models.Model):
    some_column = models.CharField(max_length=1024)


class ModelB(models.Model):
    parent = models.ForeignKey(ModelA, blank=True, null=True, related_name='children')


...

model_a  = ModelA.objects.first()
children = model_a.children.all()

Another thing to note is that this functionality already exists and we can do the same thing by just using the name of the model itself.

#default...
model_a  = ModelA.objects.first()
children = model_a.modelb.all()