What's the difference between select_related and prefetch_related in Django?
Select_related vs prefetch_related
select_related()on OneToOneField or ForeignKey when you need a single object
prefetch_related()on ManyToManyFields or reverse relations when you need many objects
class Singer(models.Model): first_name = models.CharField(max_length=40) last_name = models.CharField(max_length=40) class Song(models.Model): name = models.CharField(max_length=100) singer = models.ForeignKey(Singer, related_name="songs") Song.objects.select_related("singer").all() # Forward ForeignKey relationship Singer.objects.select_related("song").all() # Backward ForeignKey relationship