【问题标题】:How to disable Django Generics Filters Case-Sensitivity如何禁用 Django 泛型过滤器区分大小写
【发布时间】:2020-12-14 16:50:03
【问题描述】:

我正在使用 Django 泛型来获取和过滤我的数据。但它是区分大小写的,如果有办法禁用它,我会更伤心吗?

例如如果我发送这个请求,我没有得到任何结果,因为数据库中的邮件地址是Test.test@test.com

http://127.0.0.1:8000/api/users/?email=test.test@test.com

我尝试使用 __iexact,但没有成功!

序列化器:

class UserSerializer(serializers.ModelSerializer):

    class Meta:
        model = models.User
        fields = ("__all__")

查看:

class all_users(generics.ListAPIView):
    serializer_class = eden_serializers.UserSerializer
    filterset_fields = ('__all__')
    permission_classes = [DjangoModelPermissionsWithRead, ]

    def get_queryset(self):
        return models.User.objects

网址:

path('api/users/', views.all_users.as_view()),

【问题讨论】:

    标签: django generics case-sensitive django-generic-views


    【解决方案1】:

    对于不区分大小写的情况,您应该考虑使用icontains 字段查找。 icontains 用于不区分大小写的收容测试。以官方文档为例。

    例子:

    Entry.objects.get(headline__icontains='Lennon')
    

    SQL 等价物:

    SELECT ... WHERE headline ILIKE '%Lennon%'
    

    【讨论】:

    • 谢谢...但是如何将它与 generics.ListAPIView 一起用于每个字段?
    猜你喜欢
    • 2012-07-29
    • 1970-01-01
    • 2013-10-24
    • 1970-01-01
    • 2013-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多