假设数据库Person有这样的记录
+----+--------------------+ | 编号 | 菲奥 | +----+--------------------+ | 1 | 彼得罗夫·阿列克谢 | | 2 | 安德列夫·瓦伦丁 | +----+--------------------+
然后,使用通常的过滤器Person.filter(fio__contains='Петров'),我们将获得第一个条目。但是,如果我们输入 Alexey Petrov 而不是 Petrov 行,那么他会给我们一个零结果。这同样适用于缩写,例如,如果您在 Petrov A 开车。在这种情况下该怎么做。
我并没有变得更聪明,我用一种简单的方式做到了:
创建用户时,我需要显示一条消息,表明可能已经存在具有相同全名的用户。如果用户键入
Петров А.,那么我只需删除点,将字符串拆分为单词,然后检查每个单词。如果用户将全名倒过来输入,那么这个方法也有效。我不知道这是否正确,但正如我祖父所说,“有用,不要碰它。”