'Django-mptt filter in template

I use django-filter for filter in my website. Django-filter works well for my field. But when I use categories which to build with django-mptt in my template does not display tree (or taxonomy-node). I don't understand how to make it. I tried to build it you can see my try in template.html. But I get an error. I will be happy of any advice.

template.html

<form method="get" class="d-flex flex-column">
{% for su,structure in filter.form.category|tree_info %}
            {% if structure.new_level %}<ul>
               <li>{% else %}</li>
               <li>{% endif %}
                  {{ su }}
                  {% for level in structure.closed_levels %}</li>
            </ul>{% endfor %}
            {% endfor %} 
      <button class="btn-primary mt-2" type="submit">Search</button>
      </form>

models.py

class Book(models.Model):
     title = models.CharField(max_length=255, db_index=True)
    author = models.ForeignKey(
        "users.CustomUser", on_delete=models.SET_NULL, null=True, db_index=True
    )
    category = TreeManyToManyField("Category")



class Category(MPTTModel):

    name = models.CharField(
        max_length=100,
        unique=True,
        verbose_name=_("category name"),
        help_text=_("format: required, max-100"),
    )
    slug = models.SlugField(
        max_length=150,
        null=False,
        unique=False,
        blank=False,
        verbose_name=_("category safe URL"),
        help_text=_(
            "format: required, letters, numbers, underscore, or hyphens"),
    )
    parent = TreeForeignKey(
        "self",
        on_delete=models.PROTECT,
        related_name="children",
        null=True,
        blank=True,
        unique=False,
        verbose_name=_("parent of category"),
        help_text=_("format: not required"),
    )

    class MPTTMeta:
        order_insertion_by = ["name"]

    class Meta:
        verbose_name = _("article category")
        verbose_name_plural = _("article categories")

views.py

class ArticleListView(ListView):
    model = Book
    template_name = "template.html"

    def get_context_data(self, **kwargs):
        context = super().get_context_data(**kwargs)
        context["filter"] = ArticleFilter(
            self.request.GET, queryset=self.get_queryset()
        )
        return context

filters.py

class ArticleFilter(django_filters.FilterSet):
    category = TreeNodeMultipleChoiceField
    class Meta:
        model = Article
        fields = {"category"}


Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source