我有一个包含ManyToMany关系中的书籍和库的数据库。图书馆模型包含一个'区域'领域。用户使用django-filter MultipleChoiceFilter按地区过滤书籍,如下所示:
filterset.py:
class BookFilter(django_filters.FilterSet):
library__region = django_filters.MultipleChoiceFilter(choices=CHOICES, label="Regions:", widget=forms.CheckboxSelectMultiple(attrs={'class' : 'myfieldclass'})
书籍在模板中打印出来:
{% for book in filter %}
{{ book.name }}
{% for library in book.library.all %}{{ library.library }}{% endfor %}
{% endfor %}
这将打印该地区的所有书籍,以及可以找到每本书籍的所有图书馆。但是,我不想打印其他地区的图书馆。
如何应用过滤器仅打印与区域选择匹配的字段?
答案 0 :(得分:0)
尝试此选项仅打印属于所选区域的每本书的库:
... {% for library in book.library.all %} {% if library.library.region == request.GET.library__region %} {{ library.library }} {% endif %} {% endfor %}