You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Django Model Filter筛选特定格式的URL字符串?

问题解答

你写的myModel.Objects.filter(url="/myapi/****/")这种方式不可行,Django ORM并不支持用****作为通配符来模糊匹配。

以下是几种实现你需求的方法:

  • 组合字段查找(通用方法)
    先匹配以/myapi/开头且以/结尾的记录,再排除掉正好等于/myapi/的条目,就能筛选出带后缀的目标数据:

    myModel.objects.filter(url__startswith="/myapi/", url__endswith="/").exclude(url="/myapi/")
    
  • 正则表达式匹配(精准匹配数字后缀)
    如果你的后缀都是数字,用正则表达式能更精准地筛选,避免匹配到其他非数字后缀的记录:

    myModel.objects.filter(url__regex=r'^/myapi/\d+/')
    

    这个正则的意思是:必须以/myapi/开头,后面跟一个或多个数字,最后以/结尾,正好对应你表中id=1、3的记录。

  • 简单包含匹配(适合无其他特殊后缀场景)
    如果确定表中除了/myapi/和/myapi/数字/外没有其他格式的url,也可以用包含匹配加排除:

    myModel.objects.filter(url__contains="/myapi/").exclude(url="/myapi/")
    

    但注意这个方法不够精准,如果有/myapi/abc/这类记录也会被筛选出来,所以优先推荐前两种方法。

内容的提问来源于stack exchange,提问作者whitebear

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 14:17:01