[Django]-How to always prefetch_related for a specific django model

4👍

You can implement a manager [Django-doc] that will automatically add a .prefetch_related(..) to the queryset.

For example:

class MyModelManager(models.Manager):

    def get_queryset(self):
        return super().get_queryset().prefetch_related('related_model')

class MyModel(models.Model):
    # …

    _base_manager = MyModelManager()
    objects = MyModelManager()

3👍

Adding as an answer since I cannot add a comment (this answer):
The _base_manager attribute needs to be a class and not an object.

class MyModel(models.Model):   
    # …

    _base_manager = MyModelManager
    objects = MyModelManager()

Leave a comment