Remove not matching filter value

I build a website for books. My site has page with many books (list books). On this page, I use django-filter to filter the results. It works good. But I want django-filter remove not matching filter value. For example, I select Chinese and then django-filter remove some subject which not used in these languages. Can you give any advice how to build it?

models.py

class Book(models.Model):
   name = models.CharField(max_length=255)
   author = models.ForeignKey(
        "Authors",
        on_delete=models.SET_NULL,
        null=True,
        blank=True,
    )
   subject = TreeManyToManyField("Subject")
   published_date = models.DateField(blank=True, null=True)
   language = models.ForeignKey(
        "Language", on_delete=models.SET_NULL, null=True)

class Subject(MPTTModel):
   name = models.CharField(
        max_length=1000,
        unique=True,
    )

class Language(models.Model):
    name = models.CharField(
        max_length=255,
        unique=True,
    )

class Authors(models.Model):
       name = models.CharField(
        max_length=255,
        unique=True,
        )

filters.py

class BookFilter(django_filters.FilterSet):
  search = django_filters.CharFilter(
        method="my_custom_filter",
        widget=TextInput(
            attrs={
                "class": "form-control",
                "placeholder": _("Type to search"),
            }
        ),
    )
    language = django_filters.ModelMultipleChoiceFilter(
        field_name="language",
        queryset=Language.objects.order_by("name"),
        widget=forms.CheckboxSelectMultiple(),
    )
    subject = django_filters.ModelMultipleChoiceFilter(
        field_name="subject",
        queryset=Subject.objects.all(),
        widget=autocomplete.ModelSelect2Multiple(}
        ),
    )
    class Meta:
        model = Book
        fields = {
            "subject",
            "language",
            "published_date",
        }

    def my_custom_filter(self, queryset, name, value):
        q = value
        return (
            queryset.annotate(
                rank=SearchRank(vector, q),
                similarity=TrigramSimilarity("title", q)
                + similarity=TrigramSimilarity("author", q)
)

views.py

def BookListView(request):
    book = Book.objects.all()
    filter = BookFilter(request.GET, queryset=book)
    context = {
        "filter": filter,
        "book": book,
    }
    return render(request, "book.html", context)

book.html

{% extends "base.html" %}

{% block content %}
    <form method="get">
        {{ filter.form.as_p }}
        <input type="submit" />
    </form>
    {% for obj in filter.qs %}
        {{ obj.name }}
<br />
    {% endfor %}
{% endblock %}