반응형
장고 필터에서 AND를 어떻게 사용합니까?
Django에서 개체를 검색하기 위해 "AND"필터를 만들려면 어떻게해야합니까? 예를 들어 단일 필드에 두 단어의 조합이있는 행을 검색하고 싶습니다.
예를 들어 다음 SQL 쿼리는 mysql 데이터베이스에서 실행할 때 정확히 수행합니다.
select * from myapp_question
where ((question like '%software%') and (question like '%java%'))
Django에서 필터를 사용하여 어떻게 수행합니까?
( 업데이트 :이 답변은 더 이상 작동하지 않으며 구문 오류가 발생합니다. keyword argument repeated
)
mymodel.objects.filter(first_name__icontains="Foo", first_name__icontains="Bar")
update :이 답변을 작성하고 django를 수행 한 지 오래되었지만, 지금까지 가장 좋은 방법은 David Berger가 보여주는 것과 같은 Q 객체 메서드를 사용 하는 것입니다. Django 필터에서 AND를 어떻게 사용합니까?
철저히하기 위해 Q
객체 메소드를 언급하겠습니다 .
from django.db.models import Q
criterion1 = Q(question__contains="software")
criterion2 = Q(question__contains="java")
q = Question.objects.filter(criterion1 & criterion2)
여기에있는 다른 답변은 더 간단하고 사용 사례에 더 적합하지만 유사하지만 약간 더 복잡한 문제 (예 : "not"또는 "or"가 필요함)가있는 사람이 이것을 본다면 여기에 참조를 갖는 것이 좋습니다.
Django에서 필터 표현식을 연결할 수 있습니다.
q = Question.objects.filter(question__contains='software').filter(question__contains='java')
" Chaining Filters " 에있는 Django 문서에서 더 많은 정보를 찾을 수 있습니다 .
참조 URL : https://stackoverflow.com/questions/769843/how-do-i-use-and-in-a-django-filter
반응형
'Programing' 카테고리의 다른 글
Virtual Box UUID {07c3…}이 미디어 레지스트리에 저장된 {2c1b…} 값과 일치하지 않습니다. (0) | 2021.01.05 |
---|---|
RoundedBitmapDrawable 사용 방법 (0) | 2021.01.05 |
새로운 X86_64 프로세서 레지스터의 이름은 무엇입니까? (0) | 2021.01.05 |
JavaScript를 사용하여 상대 경로를 절대 경로로 변환 (0) | 2021.01.05 |
Python에서 함수 인수를 확인하는 가장 좋은 방법 (0) | 2021.01.05 |