gpt4 book ai didi

python - Django Queryset 用于连续查询 first_name 和 last_name 的全名

转载 作者:太空宇宙 更新时间:2023-11-04 09:51:16 24 4
gpt4 key购买 nike

我想在 Django 中进行全名(名字与姓氏相结合)搜索/查询。

以下是我的模型:

class Employee(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, related_name='employee')
company = models.ForeignKey(Company)
username = models.CharField(max_length=30, blank=False)
first_name = models.CharField(max_length=30, blank=False)
last_name = models.CharField(max_length=30, blank=False)
created_at = models.DateTimeField(auto_now_add=True)

例如我们有这样一个条目。名字:“迈克尔”,姓氏:“ jackson ”

我希望能够查询全名“michael jackson”。要是能不区分大小写显示就好了。

这个其他的 stackoverflow 问题是相似的,但答案没有满足这个特定的要求 Querying full name in Django .我们希望能够进行连续搜索。

我试过注释但它不起作用

queryset = Employee.objects.annotate(fullname=Concat('first_name', 'last_name'))
search_result = queryset.filter(fullname__icontains='michael jackson')

最佳答案

这有效。

from django.db.models.functions import Concat
from django.db.models import Value

queryset = Employee.objects.annotate(fullname=Concat('first_name', Value(' '), 'last_name'))
c = queryset.filter(fullname__icontains='michael jackson')

关于python - Django Queryset 用于连续查询 first_name 和 last_name 的全名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47723859/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com