The admin source is really trying to add .distinct() , but for some reason skips it for this reason (should there be an error?).
I get the behavior I'm looking for with the following:
class NoDuplicates(ChangeList): def __init__(self, *args): super(NoDuplicates,self).__init__(*args) def get_query_set(self): return super(NoDuplicates,self).get_query_set().distinct() class AAdmin(admin.ModelAdmin): def get_changelist(self, request, **kwargs): return NoDuplicates list_filter = [ B__val ]
source share