Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add ability to search in Admin with MongoDB #41

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

mrivar
Copy link

@mrivar mrivar commented Sep 17, 2018

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 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).

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.

The variable `search_fields` enables a search box on the admin change list page. This way you can search within your models in 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 a `mongo_admin.DocumentAdmin` class. 
This error is due to usage of the wrong Q operator, which does not correspong 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, configuring the right Q operator.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant