Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-比较真人姓名的最佳方法_Python_Django - Fatal编程技术网

Python Django-比较真人姓名的最佳方法

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'

假设我有

A) 型号:

B) 数据集:

我想看看我的数据集中是否存在一个人
名字:“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()