【问题标题】:Django Queryset for substr matching that starts from the beginning of a string用于从字符串开头开始的 substr 匹配的 Django Queryset
【发布时间】:2016-02-08 20:49:31
【问题描述】:

我有模型 Word,模型的每个实例都将一个单词或短语存储在 一个名为 text 的字段中。例如,
“匹配”
“匹配”
“火柴棒”
“匹配”
“不匹配”

现在我想构建一个 Django 查询集,这样给定一个查询,我想找到所有包含查询的单词,作为一个从开头开始的子字符串。例如,如果我的查询是 ma​​tch
"ma​​tches" - 是的,包含匹配作为从头开始的子字符串
ma​​tchsticks” - 是的,类似于上面
"notma​​tch" - 不,因为子字符串不是从头开始的

我不能直接使用“包含”字段查找,因为它从一开始就不匹配。我可以使用“包含”然后手动过滤结果,但可能有更有效的方法。 最有效的方法是什么?

【问题讨论】:

    标签: python django django-queryset


    【解决方案1】:

    使用startswith只能匹配从头开始的字符串:

    Model.objects.filter(text__startswith="match")
    

    django doc about startswith.

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    相关资源
    最近更新 更多