Я использую django-filter==2.1.0
для реализации поискового фильтра.Я уже реализую это.Но теперь мне нужно искать, нажав флажок не по кнопке поиска.Мои коды приведены ниже:
models.py
class Book(models.Model):
name = models.CharField(max_length=100)
publication = models.ForeignKey(Publication, on_delete=models.CASCADE)
filters.py
class BookFilter(django_filters.FilterSet):
publication = django_filters.ModelMultipleChoiceFilter(queryset=Publication.objects.all(),
widget= forms.CheckboxSelectMultiple)
class Meta:
model = Book
fields = ['publication']
views.py
def test_view(request):
book_list = Book.objects.all()
book_filter = BookFilter(request.GET, queryset=book_list)
temp = book_filter.form
return render(request, 'test.html', {'filter': book_filter})
template
{% extends 'base.html' %}
{% load widget_tweaks %}
{% block content %}
<form method="get">
{% for choice in filter.form.publication %}
<label>
{{ choice.tag }}
<span class="max-content-width">{{ choice.choice_label }}</span>
</label>
{% endfor %}
<button type="submit">Search</button>
</form>
<ul>
{% for book in filter.qs %}
<li>{{ book.name }}</li>
{% endfor %}
</ul>
{% endblock %}
Работает нормально.Но я хочу добавить widget = forms.CheckboxInput(attrs={'onclick': 'this.form.submit();'})
в мой filters.py
для ввода флажка.Я не понимаю, как я могу добавить другой виджет.Пожалуйста, помогите мне решить эту проблему.