Django: Force select liée?

j'ai créé un modèle, et je vais rendre la forme de modèle par défaut/non modifiée pour lui. Cela génère à lui seul 64 requêtes SQL car il possède un certain nombre de clés étrangères, et celles-ci ont à leur tour plus de clés étrangères.

Est-il possible de le forcer à toujours (par défaut) effectuer un select_related chaque fois qu'un de ces modèles est retourné?

34
demandé sur mpen 2011-02-04 01:55:58

3 réponses

vous pouvez créer un gestionnaire personnalisé, et simplement outrepasser get_queryset pour s'appliquer partout. Par exemple:

class MyManager(models.Manager):
    def get_queryset(self):
        return super(MyManager, self).get_queryset().select_related('foo', 'bar')

(avant Django 1.6, c'était