Skip to content

Add ability to search in Admin with MongoDB#41

Open
mrivar wants to merge 1 commit intojschrewe:masterfrom
mrivar:patch-1
Open

Add ability to search in Admin with MongoDB#41
mrivar wants to merge 1 commit intojschrewe:masterfrom
mrivar:patch-1

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