首页 > 解决方案 > 如何在 Django Rest Framework 请求查询中按非空字符串进行过滤?

问题描述

根据标题,给定一个具有如下字符串字段的模型:

class MyModel(models.Model):
    name = models.CharField(null=True, blank=True, max_length=50)

我可以在 Django 测试框架中配置一个带有过滤器的通用 api,如下所示:

class MyModelApi(ListAPIView):
    serializer_class = MyModelSerializer
    model = MyModel    
    filterset_fields = ('name')
    filter_backends = (DjangoFilterBackend)
    querystring = MyModel.objects.all()

这使我可以像这样过滤 api:

http://localhost:5000/my_api?name=foo

我也知道如何配置这样的 api,以便可以使用不同于以下过滤器的过滤器exact

http://localhost:5000/my_api?name__iconstains=bar

我想不通的是:如何获取字段不是空列表MyModel所有对象?我试过以下没有结果:name

http://localhost:5000/my_api?name__gt=
http://localhost:5000/my_api?name=

标签: pythondjangodjango-rest-framework

解决方案


推荐阅读