Как всегда prefetch_related для конкретной модели c django - PullRequest
1 голос
/ 15 января 2020

Одна из моих моделей имеет количество связанных объектов в __str__. Это делает сайт администратора очень медленным.

Можно ли настроить модель так, чтобы она всегда выполняла prefetch_related, даже если явно не запрашивается?

1 Ответ

1 голос
/ 15 января 2020

Вы можете реализовать manager [Django -doc] , который автоматически добавит .prefetch_related(..) в набор запросов.

Например:

class MyModelManager(models.Manager):

    def get_queryset(self):
        return super().get_queryset()<b>.prefetch_related('related_model')</b>

class MyModel(models.Model):
    # &hellip;

    <b>_base_manager = MyModelManager()</b>
    objects = MyModelManager()
...