Из документов:
Реализация по умолчанию выполняет поиск поля, названные в ModelAdmin.search_fields.
Этот метод может быть переопределен с помощью собственного метода поиска. Например, вы можете искать по целочисленному полю или использовать внешний инструмент, такой как Solr или Haystack. Вы должны установить, будут ли изменения в запросе, реализованные вашим методом поиска, вносить дубликаты в результаты и возвращать True во втором элементе возвращаемого значения.
Например, для того, чтобы поиск по целочисленного поля, вы можете использовать:
class PersonAdmin(admin.ModelAdmin):
list_display = ('name', 'age')
search_fields = ('name',)
def get_search_results(self, request, queryset, search_term):
queryset, use_distinct = super(PersonAdmin, self).get_search_results(request, queryset, search_term)
try:
search_term_as_int = int(search_term)
except ValueError:
pass
else:
queryset |= self.model.objects.filter(age=search_term_as_int)
return queryset, use_distinct
https://docs.djangoproject.com/en/1.8/ref/contrib/admin/
Добавьте логику и нужно там