/plants/plants/ 使用 django_filters 时要解压的值过多(预期为 2)时出现 ValueError

ValueError at /plants/plants/ too many values to unpack (expected 2) when using django_filters

嘿!

我的 Django 过滤器有问题。 当我将 {{myFilter}} 放入模板时,我只得到一个 ObjectNumber,当我放入 {{myFilter.form}} 时,我得到错误:

/plants/plants/

处的值错误

要解压的值太多(预计 2 个)

有谁知道发生了什么事吗?

# views.py

def plants_view(request):
    plants = Plant.objects.all()

    myFilter = PlantFilter(plants)

    context = {"plants": plants, "myFilter": myFilter}

    return render(request, 'plants/search_table.html', context)

# filters.py

class PlantFilter(django_filters.FilterSet):
    class Meta:
        model = Plant
        fields = ['name',]

我用 fields = [ ]还是fields = '__all__'都没关系。

template.html

{% extends "landing/base.html" %}
{% load static %}
{% load i18n %}
{% load admin_urls %}
{% block page-title %} {%translate "View Plants" %} {% endblock %}
{% block head %}
<link href="{% static 'landing/vendor/tabulator/dist/css/tabulator.min.css' %}" rel="stylesheet">
<link href="{% static 'landing/vendor/tabulator/dist/css/bootstrap/tabulator_bootstrap4.min.css' %}" rel="stylesheet">
{% endblock %}

{% block content %}

        <br>
        <div class="row">
            <div class="col">
                <div class="card card-body">

                    <form method="get">
                        {{myFilter.form}}

                        <button class="btn-primary" type="submit">Search</button>
                    </form>

                </div>
            </div>
        </div>
        </br>

# models.py
class Plant(models.Model):
    name = models.CharField(
        max_length=200
    )
    
    def __str__(self):
        return f"{self.name}"

    def serialize(self):
        return {
            "Name": self.name
    }

您是否遵循了 this page 上的文档?

views.py

def plants_view(request):
    plants = Plant.objects.all()

    myFilter = PlantFilter(request.GET, queryset=plants)

    context = {"plants": plants, "myFilter": myFilter}

    return render(request, 'plants/search_table.html', context)

template.html

<form method="get">
    {{ myFilter.form.as_p }}
    <button class="btn-primary" type="submit">Search</button>
</form>