[Django]-Django adminsite customize search_fields query

32👍

Since django 1.6, you can customize the search by defining a get_search_results method in your ModelAdmin subclass.

It is well explained in django documentation. The following example is copied from this doc.

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)
            queryset |= self.model.objects.filter(age=search_term_as_int)
        except:
            pass
        return queryset, use_distinct
👤luc

-1👍

You should use search_fields = ['foreign_key__related_fieldname']
like search_fields = ['user__email'] in the admin class that extends admin.ModelAdmin

read more here

👤Kozet

-2👍

this might can help

search_fields = [‘foreign_key__related_fieldname’]

http://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields

Leave a comment