from django.contrib import admin from .models import Profile, Corporation, Adherent class ProfileAdmin(admin.ModelAdmin): list_display = ('user', 'phone_number',) class AdherentTypeFilter(admin.SimpleListFilter): title = 'type d’adhérent' parameter_name = 'type' def lookups(self, request, model_admin): return ( ('physique', 'Personne physique'), ('morale', 'Personne morale'), ) def queryset(self, request, queryset): if self.value() == 'physique': return queryset.filter(adherent_type__app_label='auth', adherent_type__model='user') if self.value() == 'morale': return queryset.filter(adherent_type__app_label='adhesions', adherent_type__model='corporation') class AdherentAdmin(admin.ModelAdmin): list_display = ('id', 'adherent_name', 'type',) list_filter = (AdherentTypeFilter,) def adherent_name(self, obj): return str(obj) adherent_name.short_description = 'Nom ou raison sociale' admin.site.register(Profile, ProfileAdmin) admin.site.register(Corporation) admin.site.register(Adherent, AdherentAdmin)