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

fix error when viewing object history #57

Merged
merged 1 commit into from
Nov 28, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 16 additions & 2 deletions django_typesense/admin.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
from django.forms import forms
from django.http import JsonResponse

from django_typesense.mixins import TypesenseModelMixin
from django_typesense.utils import typesense_search
from django_typesense.paginator import TypesenseSearchPaginator

Expand Down Expand Up @@ -47,7 +48,9 @@ def get_sortable_by(self, request):
"""

sortable_fields = super().get_sortable_by(request)
return set(sortable_fields).intersection(self.model.collection_class.sortable_fields)
return set(sortable_fields).intersection(
self.model.collection_class.sortable_fields
)

def get_results(self, request):
"""
Expand Down Expand Up @@ -79,13 +82,24 @@ def get_paginator(
# Happens for autocomplete fields. Simple fix to avoid creating a custom AdminSite and AutoCompleteJSONView
search_term = request.GET.get("term", "*")
if isinstance(results, QuerySet):
if not issubclass(results.model, TypesenseModelMixin):
return super().get_paginator(
request, results, per_page, orphans, allow_empty_first_page
)

results = self.get_typesense_search_results(search_term)

return TypesenseSearchPaginator(
results, per_page, orphans, allow_empty_first_page, self.model
)

def get_typesense_search_results(self, search_term: str, page_num: int = 1, filter_by: str = '', sort_by: str = ''):
def get_typesense_search_results(
self,
search_term: str,
page_num: int = 1,
filter_by: str = "",
sort_by: str = "",
):
"""
Get the results from typesense with the provided filtering, sorting, pagination and search parameters applied

Expand Down
Loading