小编sfa*_*riz的帖子

Django从字段开始

假设我有一个带有邮政编码字段的地址模型.我可以使用此行查找以"123"开头的邮政编码的地址:

Address.objects.filter(postcode__startswith="123")
Run Code Online (Sandbox Code Playgroud)

现在,我需要搜索"其他方式".我有一个带有postcode_prefix字段的地址模型,我需要检索postcode_prefix是给定代码前缀的所有地址,如"12345".因此,如果在我的数据库中我有2个地址使用postcode_prefix ="123"和"234",则只返回第一个地址.

就像是:

Address.objects.filter("12345".startswith(postcode_prefix)) 
Run Code Online (Sandbox Code Playgroud)

问题是这不起作用.我能想出的唯一解决方案是对第一个char执行过滤,例如:

Address.objects.filter(postcode_prefix__startswith="12345"[0])
Run Code Online (Sandbox Code Playgroud)

然后,当我得到结果时,制作一个列表理解,正确过滤它们,如下所示:

results = [r for r in results if "12345".startswith(r.postcode_prefix)]
Run Code Online (Sandbox Code Playgroud)

在django有更好的方法吗?谢谢你,法布里奇奥

django startswith filter

20
推荐指数
3
解决办法
3万
查看次数

标签 统计

django ×1

filter ×1

startswith ×1