2017-12-09 2 views
1

장고에서 fullname (first_name concat last_name) 검색/쿼리를하고 싶습니다. 우리는이 같은 항목이 예를 들어Django 쿼리 셋 first_name과 last_name의 전체 이름 concat에 대한

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) 

:

다음은 내 모델입니다. first_name : "Michael", last_name : "Jackson"

"michael jackson"이라는 정식 이름을 쿼리 할 수 ​​있기를 원합니다. 대소 문자를 구분하지 않고 표시 할 수 있다면 좋을 것입니다.

이 다른 stackoverflow 질문은 비슷하지만 답변이 적절하게 Querying full name in Django에서이 특정 요구 사항을 충족시키지 못합니다. 우리는 concat 검색을 할 수 있기를 원합니다.

나는 주석과 시도했지만이 근무

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

답변

0

작동 나던.

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') 
관련 문제