【问题标题】:How to filter queryset data with exact matching word?如何过滤具有完全匹配词的查询集数据?
【发布时间】:2020-07-19 15:46:21
【问题描述】:

我正在创建一个 Django 项目,在这里我定义了一些字段,例如:

class Data1(models.Model):
    message = models.TextField()

并在 msg 变量中输入单词 味精=“你好” 我想过滤所有存在 msg 变量的消息字段字符串。当我使用时

list_data = Data1.objects.filter(message__icontains=msg).all()

它没有给我想要的输出是否有任何方法可以过滤字符串中单词完全匹配的查询对象。

【问题讨论】:

    标签: django model django-queryset


    【解决方案1】:

    当您使用Data1.objects.all() 时,其 samq sql 查询如下:

    select * from Data1

    但是如果你想要类似下面的东西:

    select * from data1 where message like '%msg%'

    你应该写: Data1.objects.filter(message__contains=msg) 没有.all()

    基于https://docs.djangoproject.com/en/3.0/topics/db/queries/

    【讨论】:

    • 不,兄弟我在删除所有()后仍然得到额外的数据,我想要,字符串中是否有任何单词,如果存在则进一步处理,'%msg%' 搜索所有值,如果它存在于一个词中然后我得到额外的对象,例如如果我想用“shi”词过滤所有对象,那么这个过滤器语法还考虑“shiv”词我想将两者分开并希望确切的词存在查询集。
    • 如果你想要确切的词shi你应该过滤而不包含,并且icontains是区分大小写的,你能写出你想要的输出和输出吗? @ShivShankarKeshari
    猜你喜欢
    • 2018-10-20
    • 2012-08-12
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 2020-06-27
    • 2017-10-22
    • 1970-01-01
    • 2014-11-01
    相关资源
    最近更新 更多