首页 > 解决方案 > Django 过滤器 ModelMultipleChoiceFilter: __init__() 至少需要 2 个参数(给定 3 个)

问题描述

我有这个代码:

class MyFilter(FilterSet):
    transcribe_by = django_filters.ModelMultipleChoiceFilter(
        name='transcribe_by',
        label='Transcribed By'
    )

打开页面时出现此错误:

__init__() takes at least 2 arguments (3 given)

我究竟做错了什么?

标签: djangodjango-filter

解决方案


你错过了queryset论点。ModelMultipleChoiceFilter需要它。因此,将查询集添加到您的代码中:

transcribe_by = django_filters.ModelMultipleChoiceFilter(
    queryset=User.objects.filter(is_staff=True),
    name='transcribe_by',
    label='Transcribed By'
)

老实说,错误消息有点不清楚。


推荐阅读