mixins.py 806 B

1234567891011121314151617181920
  1. from django.contrib import messages
  2. from archivebox.search import query_search_index
  3. class SearchResultsAdminMixin:
  4. def get_search_results(self, request, queryset, search_term: str):
  5. """Enhances the search queryset with results from the search backend"""
  6. qs, use_distinct = super().get_search_results(request, queryset, search_term)
  7. search_term = search_term.strip()
  8. if not search_term:
  9. return qs, use_distinct
  10. try:
  11. qsearch = query_search_index(search_term)
  12. qs = qs | qsearch
  13. except Exception as err:
  14. messages.add_message(request, messages.WARNING, f'Error from the search backend, only showing results from default admin search fields - Error: {err}')
  15. return qs, use_distinct