Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Exact field search in the Django admin

I'm trying to configure the Django admin bindings for a specific model so that I can quickly filter by the exact value of a specific field. I know I can manually tamper with the GET parameters to do this:

?fieldname__exact=foobar

What I can't seem to do, is get the sidebar to display a small form where I can enter this value. I know I can add fieldname to list_filter, but that doesn't scale well beyond tens of unique values. I looked into django-advanced-filters for a bit, but it doesn't seem to be compatible with Django 1.11.

How can I implement exact search for a specific field in the Django admin?

like image 274
Pieter Avatar asked Jul 24 '17 14:07

Pieter


1 Answers

a little late but i hope it still helps someone

the possible configurations for the searchfield are listed at http://www.django-rest-framework.org/api-guide/filtering/#searchfilter.

'^' Starts-with search.
'=' Exact matches. (case-insensitive)
'@' Full-text search. (Currently only supported Django's MySQL backend.)
'$' Regex search. (Only with Django Rest Framework)

In your case, just add

search_fields = ['=fieldname', 'otherfieldname']

to your admin.

Update: Since Django 2.1 it is also possible to add lookups to the search fields (e.g. 'fieldname__exact'). You can find infos in the Django Docs, as well as the possible Lookups

like image 56
lilaLeon Avatar answered Oct 03 '22 21:10

lilaLeon