在Django中查询全名

如何在Django中查询全名?

为了明确起见,我本质上想创建一个临时列,将first_name和last_name组合在一起以给出一个全名,然后对它进行LIKE,如下所示:

select [fields] from Users where CONCAT(first_name, ' ', last_name) LIKE '%John Smith%";

上面的查询将返回所有名为John Smith的用户。如果可能的话,我想避免使用原始SQL调用。

我正在专门讨论的模型是django.contrib.auth.models用户模型。直接更改模型不是问题。

回答:

除非我缺少任何东西,否则可以使用python来查询数据库,如下所示:

from django.contrib.auth.models import User

x = User.objects.filter(first_name='John', last_name='Smith')

编辑: 要回答您的问题:

如果在用户搜索“ John Smith”时需要返回“ John Paul Smith”,则可以使用“ contains ”,它转换为SQL LIKE。如果仅需要存储名称“ John Paul”的功能,则将两个名称都放在first_name列中。

User.objects.filter(first_name__contains='John', last_name__contains='Smith') 

转换为:

SELECT * FROM USERS

WHERE first_name LIKE'%John%'

AND last_name LIKE'%Smith%'

以上是 在Django中查询全名 的全部内容, 来源链接: utcz.com/qa/409125.html

回到顶部