Python Django-比较真人姓名的最佳方法
假设我有 A) 型号: B) 数据集: 我想看看我的数据集中是否存在一个人Python Django-比较真人姓名的最佳方法,python,django,Python,Django,假设我有 A) 型号: B) 数据集: 我想看看我的数据集中是否存在一个人名字:“John”,姓氏:“Smith”或名字:“John”,姓氏:“Bar Smith”,以避免重复 我的第一个想法是使用ElasticSearch。是否有任何“更便宜”的方法(可能是django native)可以做到这一点?您可以使用带有多个参数的filter: Person.objects.filter(first_name__contains='John', last_name__contains='Smith'
名字:“John”,姓氏:“Smith”
或名字:“John”,姓氏:“Bar Smith”
,以避免重复
我的第一个想法是使用ElasticSearch。是否有任何“更便宜”的方法(可能是django native)可以做到这一点?您可以使用带有多个参数的
filter
:
Person.objects.filter(first_name__contains='John', last_name__contains='Smith').exists()
要检查queryset是否返回任何数据,您可以使用该方法。嗯,真人姓名肯定可以是完全重复的。问题是,对于不同的人,您可以使用相同的姓名/姓氏。你没有其他(希望)独一无二的领域吗?比如说电子邮件。然后你比较name lastname email,这样你就知道这个人(不是这个字段)是唯一的。然而,现在似乎很多人有不止一个地址,这使得重复检查成为了一场噩梦。您建议如何组合这些多个筛选器参数?我尝试过Q()-ing它们,但似乎有一些组合的结尾,它们并非都有意义。@ShezanKazi如果我正确理解您的问题,您可以使用
contains
:
first_names: "John", last_names: "Smith"
first_names: "John", last_names: "Bar Smith"
first_names: "John Foo", last_names: "Smith"
Person.objects.filter(first_name__contains='John', last_name__contains='Smith').exists()