2014-02-21 2 views
0

나는 Django 여러 필드에서 개체 Q를 쿼리 하시겠습니까?

class UserProfile(models.Model): 
    user = models.ForeignKey(User, unique=True) 
    first_name = models.CharField(max_length=255) 
    last_name = models.CharField(max_length=255) 

가 지금은 사용자를 검색 할 장고 모델을 가지고있다. 문제는 내가 할 때이다

Q(first_name__icontains=search_string) | Q(last_name__icontains=search_string) 

단지 각각 first_name과 last_name 만 검색한다. 그러나 검색 표시 줄에 전체 이름을 입력하면 전체 이름 (first_name + last_name)이 first_name 또는 last_name에 포함되지 않으므로 결과가 제공되지 않습니다. 내 모델을 변경하고 싶지는 않지만 검색시 필드의 조합 (first_name + last_name)을 동적으로 쿼리 할 수 ​​있습니다. 그럴 수있는 방법이 있습니까?

+0

검색 문자열을 '분할하여 각 필드에서 2 개의 문자열을 검색 할 수 있습니다. – Rohan

답변

0

여러 단어가 공백으로 나뉘어져 있고 istartswith를 사용하는 경우 단일 단어 또는 다중 단어인지 확인하십시오. 단 하나의 단어 만 사용하는 경우 현재 검색 단어를 분리하고 아래처럼 사용하십시오.

Q (first_name__istartswith = "Firstname") | Q (last_name__istartswith = "이름") | Q (first_name__istartswith = "성") | Q (last_name__istartswith = "성") )

관련 문제