我正在尝试通过查询过滤我的客户。用户可以查找写在同一字段中的 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)
添加回答
举报
0/150
提交
取消