Django过滤器 - 过滤器模型和相关模型

时间:2016-06-07 08:42:14

标签: django django-forms django-filter

我有一个包含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 %}

这将打印该地区的所有书籍,以及可以找到每本书籍的所有图书馆。但是,我不想打印其他地区的图书馆。

如何应用过滤器仅打印与区域选择匹配的字段?

1 个答案:

答案 0 :(得分:0)

尝试此选项仅打印属于所选区域的每本书的库:

...
{% for library in book.library.all %}
    {% if library.library.region == request.GET.library__region %}
        {{ library.library }}
    {% endif %}
{% endfor %}