Je suis en train d'utiliser django-filter==2.1.0
pour mon filtre de recherche. Maintenant j'ai besoin d'ajouter un appel ajax dans mon filtre de recherche. Mes codes sont donnés ci-dessous:
views.py
def test_view(request):
book_list = Book.objects.all()
book_filter = BookFilter(request.GET, queryset=book_list)
return render(request, 'test.html', {'filter': book_filter})
test.html
{% extends 'base.html' %}
{% load widget_tweaks %}
{% block content %}
{{ filter.form.as_p }}
Rechercher
{% for book in filter.qs %}
{{ book.name }}
{% endfor %}
{% endblock %}
filters.py
class BookFilter(django_filters.FilterSet):
publication = django_filters.ModelMultipleChoiceFilter(queryset=Publication.objects.all(), widget=forms.CheckboxSelectMultiple)
authors = django_filters.ModelMultipleChoiceFilter(queryset=Author.objects.all(), widget=forms.CheckboxSelectMultiple)
categories = django_filters.ModelMultipleChoiceFilter(queryset=Category.objects.all(), widget=forms.CheckboxSelectMultiple)
class Meta:
model = Book
fields = ['publication', 'authors', 'categories', ]
models.py
class Book(models.Model):
name = models.CharField(max_length=100)
publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
authors = models.ManyToManyField(Author, through='AuthorBook')
categories = models.ManyToManyField(Category, through='BookCategory')
Dans ajax, une valeur d'URL est nécessaire. django-filter fonctionne automatiquement. Donc, je ne peux pas comprendre comment implémenter un appel ajax avec django_filter. Merci d'avance.