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

我正在尝试通过查询过滤我的客户。用户可以查找写在同一字段中的 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)

我能用这个做什么?


提前致谢 !


慕妹3242003
浏览 116回答 1
1回答

尚方宝剑之说

使用逻辑或进行contains查找from django.db.models import Qsearch_keyword = "EE"or_expression = Q(company_name__contains=search_keyword) | Q(cif__contains=search_keyword)Client.objects.filter(or_expression)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python