Add ability to search in Admin with MongoDB #41
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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.