What's the difference between select_related and prefetch_related in Django?
Django tip:
Select_related vs prefetch_related
- Use
select_related()
on OneToOneField or ForeignKey when you need a single object- Use
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