Django在数据库中搜索

1 投票
1 回答
1675 浏览
提问于 2025-04-16 21:33

我在生产服务器上使用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)

撰写回答