为了账号安全,请及时绑定邮箱和手机立即绑定

objects.filter 获取字符串是否包含在一个或其他字段中

objects.filter 获取字符串是否包含在一个或其他字段中

慕妹3242003 2023-09-12 16:32:12
我正在尝试通过查询过滤我的客户。用户可以查找写在同一字段中的 cif 代码和客户名称,因此我无法知道他是否正在寻找一件事或另一件事。我试图弄清楚如何在两个字段中进行过滤而不排除另一个字段。我会尝试举一个例子:我的客户桌上有这个:[    {        "company_name":"Best Bar EUW",        "cif":"ABCD1234"    },    {        "company_name":"Word Bar EEUU",        "cif":"POIU4321"    },    {        "company_name":"Not a bad bar",        "cif":"MNVB1321"    }]现在我想查找“EE”字符串:我想要的结果是第二个对象,但字符串“EE”不包含在“cif”中,因此它不会给我想要的结果,因为它包含在内在一个领域,但在另一领域则不然。这是我的客户端模型:class Client(LogsMixin, models.Model):    """Model definition for Client."""    company_name = models.CharField("Nombre de la empresa", max_length=150, default="Nombre de empresa", null=False, blank=False)    user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)    cif = models.CharField("CIF", null=False, default="", max_length=50)    platforms = models.ManyToManyField('consumptions.Platform', verbose_name=("Plataformas"))    dateadded = models.DateTimeField("Fecha de inserción", default=datetime.datetime.now)我能用这个做什么?提前致谢 !
查看完整描述

1 回答

?
尚方宝剑之说

TA贡献1788条经验 获得超4个赞

使用逻辑或进行contains查找

from django.db.models import Q


search_keyword = "EE"

or_expression = Q(company_name__contains=search_keyword) | Q(cif__contains=search_keyword)

Client.objects.filter(or_expression)


查看完整回答
反对 回复 2023-09-12
  • 1 回答
  • 0 关注
  • 61 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信