Django在数据库中搜索
我在生产服务器上使用MySQL,在本地测试服务器上使用SQLite来运行我的django应用。
我有一个这样的模型:
class Product(models.Model):
name = models.CharField(max_length = 40)
我在应用中实现了一个搜索功能,用来搜索产品。我使用的命令是:Product.objects.filter(name__contains = text)
但是这样做的话,如果我搜索一个空格" "
,应用会返回所有名字里包含空格的产品。这看起来有点糟糕。而且如果我搜索一个单独的字符,比如a
,它会返回所有名字里包含a
的产品。有没有办法只搜索“完整的单词”?
1 个回答
3
这里有两个链接,分别指向Django和Python的官方文档。
第一个链接是关于Django中查询集的正则表达式使用方法,适合想了解如何在Django中使用正则表达式的人。
第二个链接是关于Python的re模块,它提供了处理正则表达式的工具,适合想学习如何在Python中使用正则表达式的人。
pattern= r"\b%s\b" % text
Product.objects.filter(name__regex = pattern)