Without this change, Django returns an error when adding search_fields to a mongo_admin.DocumentAdmin class.
This error is due to the usage of the wrong Q operator, which does not correspond to MongoDB search engine:
(Django original code: https://github.com/django/django/blob/master/django/contrib/admin/options.py#L1025 uses django.db.models.Q instead of mongo_engine's mongoengine.queryset.visitor.Q).
The variable
search_fields
enables a search box on the admin change list page. This way you can search within your models on the admin site. (ref: https://docs.djangoproject.com/en/2.1/ref/contrib/admin/#django.contrib.admin.ModelAdmin.search_fields)Without this change, Django returns an error when adding
search_fields
to amongo_admin.DocumentAdmin
class. This error is due to the usage of the wrong Q operator, which does not correspond to MongoDB search engine: (Django original code: https://github.com/django/django/blob/master/django/contrib/admin/options.py#L1025 uses django.db.models.Q instead of mongo_engine's mongoengine.queryset.visitor.Q).This change is just adding lines https://github.com/django/django/blob/master/django/contrib/admin/options.py#L984-L1030 here (get_search_results ModelAdmin method), configuring the right Q operator.