I have a simple Django model like:
class Person(models.Model):
referrer = models.ForeignKey(\'self\', null=True)
...
In this model\
there is a simple way:
class RefererFilter(admin.SimpleListFilter):
title = 'has referer'
# Parameter for the filter that will be used in the URL query.
parameter_name = 'referer__isnull'
def lookups(self, request, model_admin):
return (
('False', 'has referer'),
('True', 'has no referer'),
)
def queryset(self, request, queryset):
if self.value() == 'False':
return queryset.filter(referer__isnull=False)
if self.value() == 'True':
return queryset.filter(referer__isnull=True)
Then just used them in ModelAdmin:
class PersonAdmin(admin.ModelAdmin):
list_filter = (RefererFilter,)