Одна из моих моделей имеет количество связанных объектов в __str__. Это делает сайт администратора очень медленным.
__str__
Можно ли настроить модель так, чтобы она всегда выполняла prefetch_related, даже если явно не запрашивается?
Вы можете реализовать manager [Django -doc] , который автоматически добавит .prefetch_related(..) в набор запросов.
.prefetch_related(..)
Например:
class MyModelManager(models.Manager): def get_queryset(self): return super().get_queryset()<b>.prefetch_related('related_model')</b> class MyModel(models.Model): # … <b>_base_manager = MyModelManager()</b> objects = MyModelManager()