fix select_related loop infini FK modeles
authorOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 27 May 2011 14:21:06 +0000 (10:21 -0400)
committerOlivier Larchevêque <olivier.larcheveque@auf.org>
Fri, 27 May 2011 14:21:06 +0000 (10:21 -0400)
project/recrutement/admin.py

index a7801a8..5d8ebdb 100644 (file)
@@ -29,6 +29,16 @@ class CandidatAdmin(admin.ModelAdmin):
         }),
     )
 
+    def queryset(self, request):
+        """
+        Spécifie un queryset limité, autrement Django exécute un select_related()
+        sans paramètre, ce qui a pour effet de charger tous les objets FK, sans limite
+        de profondeur. Dès qu'on arrive, dans les modèles de Region, il existe plusieurs
+        boucles, ce qui conduit à la génération d'une requête infinie.
+        """
+        qs = self.model._default_manager.get_query_set()
+        return qs.select_related('offre_emploi')
+
 class CandidatPieceAdmin(admin.ModelAdmin):
     pass