如何使用Django模型进行不区分大小写的查询

sin*_*inθ 14 django django-models

我有一个member包含email字段的模型.我最近意识到,如果电子邮件的一部分是大写的,如果我尝试通过电子邮件进行过滤,它将不会显示在Django查询中(多个成员对象具有相同的电子邮件,但可能不会大写).我可以在将所有电子邮件输入数据库时​​将其设置为小写,但现在已经太晚了(因为网站已经启动).那么如何在不区分大小写的情况下查看谁拥有某个电子邮件?

dre*_*man 45

只需使用iexact:

User.objects.filter(email__iexact='email@email.com')
Run Code Online (Sandbox Code Playgroud)

不区分大小写的完全匹配.如果为比较提供的值为None,则将其解释为SQL NULL(有关更多详细信息,请参阅isnull).


bak*_*kal 6

Member.objects.filter(email__iexact=email)
Run Code Online (Sandbox Code Playgroud)