Django rest framework DjangoFilterBackend字段=空

Django rest framework DjangoFilterBackend字段=空,django-rest-framework,django-filters,Django Rest Framework,Django Filters,我将DjangoFilterBackend用于所有字段: class EntitiesViewSet(viewsets.ModelViewSet): queryset = Entity.objects.all() serializer_class = EntitiesSerializer pagination_class = StandardResultsSetPagination filter_backends = (DjangoFilterBackend,)

我将DjangoFilterBackend用于所有字段:

class EntitiesViewSet(viewsets.ModelViewSet):
    queryset = Entity.objects.all()
    serializer_class = EntitiesSerializer
    pagination_class = StandardResultsSetPagination
    filter_backends = (DjangoFilterBackend,)
    filter_fields = '__all__'
它非常适合通过一个或多个具有固定值或布尔值的字段的url进行查询

像这样:

http://localhost:8000/api/persons/?news_by_email=True
http://localhost:8000/api/persons/?issuer=SSP-SC
但我还需要过滤空值的字段,它不起作用

我试过:

/persons/?parent=null
/persons/?parent=Null
/persons/?parent=NULL
/persons/?parent=
/persons/?parent__isnull
在同样的简化过程中有什么建议吗

有需要扩展或新视图集的建议吗

filter_fields = {'parent': ['isnull']}
这将添加一个带有“isnull”的筛选器,您可以按如下方式进行查询:

/persons/?parent__isnull=true

除了isnull之外,您可能还需要查询“精确”值。那么,

filter_fields = {'parent': ['exact', 'isnull']}
您可以使用“=True”进行查询

/persons/?parent__isnull=True

那么
/persons/?parent=None
呢?请注意,filter\u字段现在是filterset\u字段,但是是的,这可以正常工作。如果您还希望能够筛选基础的精确值,请添加['exact','isnull']。