首页 > 解决方案 > 在 Django 'contains' 查询中包含通配符 (%)

问题描述

根据 Django 文档

Entry.objects.get(headline__contains='Lennon')

大致翻译成这个 SQL:

SELECT ... WHERE headline LIKE '%Lennon%';

但是,如果我想做这样的事情(删除通配符):

SELECT ... WHERE headline LIKE '%Lennon';

Django 查询会是什么?

标签: djangodjango-queryset

解决方案


您正在查找的部分字段查找的关键字是startswithendswith

Entry.objects.filter(headline__startswith='Lennon')
Entry.objects.filter(headline__endswith='Lennon')

您还可以使用不区分大小写的变体,istartswith并且iendswith

Entry.objects.filter(headline__istartswith='lennon')
Entry.objects.filter(headline__iendswith='lennon')

推荐阅读