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)
1  2 
project/recrutement/admin.py

@@@ -4,21 -4,31 +4,41 @@@ from django.contrib import admi
  from recrutement.models import *
  
  class OffreEmploiAdmin(admin.ModelAdmin):
-     pass
+     date_hierarchy = 'date_creation'
+     list_display = ('nom', 'resume', 'date_limite',)
+     list_filter = ('region',)
  
  class CandidatAdmin(admin.ModelAdmin):
-     list_display = ('nom', 'prenom', 'offre_emploi', )
+     date_hierarchy = 'date_creation'
+     list_display = ('nom', 'prenom', 'offre_emploi','statut',)
+     fieldsets = (
+         ('Informations personnelles', {
+             'fields': ('prenom','nom','genre', 'nationalite', 'date_naissance',
+                         'situation_famille', 'nombre_dependant',)        
+         }),
+         ('Adresse', {
+             'fields': ('adresse', 'ville', 'etat_province', 'pays', )
+         }),
+         ('Informations professionnelles', {
+             'fields': ('offre_emploi','niveau_diplome','employeur_actuel','poste_actuel',
+                         'domaine_professionnel',)
+         }),  
+         ('Options avancées', {
+             'classes': ('collapse',),
+             'fields': ('actif', 'statut', )
+         }),
+     )
  
 +    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