gpt4 book ai didi

python - Django 过滤器 iexact 在列表上

转载 作者:太空宇宙 更新时间:2023-11-04 03:23:10 26 4
gpt4 key购买 nike

我有一个这样设置的用户模型。

class ExternalUserModel(models.Model):
email = models.EmailField()
# other fields

class MyUserModel(models.Model):
external_user = models.ForeignKey(ExternalUserModel)
# other fields

我正在尝试从电子邮件列表中获取 MyUserModel 列表。

这是我要执行的查询:

MyUserModel.objects.filter(external_user__email__iexact__in=user_emails)

但是我收到了这个错误:不支持对 EmailField 的查找“iexact”或不允许在该字段上加入。

我需要 iexact,因为电子邮件列表是基于用户输入的,可能与数据库中存储的大小写不匹配。

我应该如何进行此查询?

最佳答案

Django ORM 不直接支持它。我认为数据库后端也不会。您可以通过组合多个 __iexact 过滤器来获得您正在寻找的结果,如此处的各种答案所示:How to dynamically compose an OR query filter in Django?

在此处显示的选项中,我更喜欢 reduce(operator.or_, ...) 语法而不是 for 循环,但这是个人偏好。

关于python - Django 过滤器 iexact 在列表上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34006296/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com