Ich habe eine Datenbank mit Büchern und Bibliotheken in einer ManyToMany-Beziehung. Das Bibliotheksmodell enthält ein Feld 'Region'. Der Benutzer filtert die Bücher nach Region mit einem django-Filter MultipleChoiceFilter wie folgt:Django-Filter - Filtermodell und verwandtes Modell
filterset.py:
class BookFilter(django_filters.FilterSet):
library__region = django_filters.MultipleChoiceFilter(choices=CHOICES, label="Regions:", widget=forms.CheckboxSelectMultiple(attrs={'class' : 'myfieldclass'})
Und die Bücher in der Vorlage drucken mit:
{% for book in filter %}
{{ book.name }}
{% for library in book.library.all %}{{ library.library }}{% endfor %}
{% endfor %}
Dies druckt alle Bücher in der Region und alle Bibliotheken, in denen jedes dieser Bücher gefunden werden kann. Ich möchte jedoch nicht die Bibliotheken aus anderen Regionen drucken.
Wie kann ich den Filter anwenden, um nur die Felder zu drucken, die der Regionsauswahl entsprechen?
Dies funktioniert, wenn nur eine Region ausgewählt wird, sondern verwendet nur die letzte Region, wenn mehr als eine ausgewählt wird .. . Danke für Ihre Hilfe! – MJHorn
Okay, ich habe es funktioniert mit request.GET.getlist in den Ansichten. Danke noch einmal! – MJHorn
Oops Entschuldigung, ich habe nicht gesehen, dass Sie einen MultipleChoiceFilter verwendet haben! – Serafeim