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

index b1252f8..40d9d0a 100644 (file)
@@ -7,7 +7,17 @@ class OffreEmploiAdmin(admin.ModelAdmin):
     pass
 
 class CandidatAdmin(admin.ModelAdmin):
-    pass
+    list_display = ('nom', 'prenom', 'offre_emploi', )
+
+    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