Django admin do not show search term in changelist url

Question!

I have modified the get_search_results method of django admin changelist to use custom search method. I am using large text string as input to the search, so I don't want the search term to appear in the url. How can I remove the search term from the changelist url ?

def get_search_results(self, request, queryset, search_term):
    """
    Returns a tuple containing a queryset to implement the search,
    and a boolean indicating if the results may contain duplicates.
    """
    # Apply keyword searches.
    def construct_search(field_name):
        if field_name.startswith('^'):
            return "%s__istartswith" % field_name[1:]
        elif field_name.startswith('='):
            return "%s__iexact" % field_name[1:]
        elif field_name.startswith('@'):
            return "%s__search" % field_name[1:]
        else:
            return "%s__icontains" % field_name

    use_distinct = False
    if search_term:
        # here input is large text string
        sites = get_sites_from_text(search_term)
        search_fields = self.get_search_fields(request)
        if len(sites) > 0:
            queryset = queryset.filter(site_name__in=sites)
        elif search_fields:
            orm_lookups = [construct_search(str(search_field))
                           for search_field in search_fields]
            for bit in search_term.split():
                or_queries = [models.Q(**{orm_lookup: bit})
                              for orm_lookup in orm_lookups]
                queryset = queryset.filter(
                    reduce(operator.or_, or_queries))
            if not use_distinct:
                for search_spec in orm_lookups:
                    if lookup_needs_distinct(self.opts, search_spec):
                        use_distinct = True
                        break

    return queryset, use_distinct


This video can help you solving your question :)
By: admin