Skip to content

SchroterQuentin/django-search-listview

Repository files navigation

Django-SearchableListView

Build Status Coverage Status Code Health

ListView which can be searchable, paginate and which doesn't lose query parameter and page number

Installation

This library need jQuery ( and Bootstrap for the frond-end ) To install it in your vitualenv on your django project

pip install django-search-listview
INSTALLED_APPS = [
    ...
    'search_listview',
]

Only paginate ListView

from search_listview.list import SearchableListView

class ListDevicePaginate(SearchableListView):
    model = Device
    template_name = "tests/list.html"
    paginate_by = 10

Paginate + Searchable ListView

from search_listview.list import SearchableListView

class ListDeviceSearchablePaginate(SearchableListView):
    model = Device
    template_name = "tests/list.html"
    paginate_by = 10
    searchable_fields = ["inventory_number", "model_device", "model_device__brand__provider",
    "model_device__brand__name"]
    specifications = {
        "model_device__brand__name": "__icontains"
    }

Put the parameter for the query in searchable_fields which will be use to filter the queryset. The specifications which be use in the same way.

In the template

  • Where you want the pagination and the search box
<div class="row">
    {% include "search_listview/search_and_page.html" %}
</div>
  • In the footer
<!--Need jQuery-->
<script src="{% static 'search_listview/js/search_listview.js' %}"></script>
<script>
    start_search()
</script> 

Now you have a beautifull box with all the fields you need.

Alt tag

About

ListView searchable which doesn't lose argument parameter

Resources

License

Stars

Watchers

Forks

Packages

No packages published