장고 OR 필터
OR
문으로 필터를 개별적으로 실행하는 방법에 대해 이 빠르고 쉬운 설명을 통해 배우고 Django 쿼리 세트에서 Q
개체로 필터를 실행하는 방법도 살펴보겠습니다.
필터를 사용하여 Django Queryset에서 OR
문을 개별적으로 그리고 Q
개체와 함께 실행
이 예에서는 일부 데이터가 추가된 우리가 만든 데이터베이스를 사용하고 이것이 어떻게 생겼는지 보여줍니다.
기본 예제를 만듭니다. posts
라는 변수를 만들고 이 변수 안에 모든 데이터를 저장합니다. 간단한 OR
문을 생성할 수 있는 필터를 실행할 것입니다.
먼저 OR
문을 만들 대상을 선택해야 하므로 austin
또는 baldwin
으로 시작하는 모든 학생의 이름을 수집하겠습니다.
surname__startswith
인수를 사용하고 surname을 전달하여 austin
및 baldwin
성으로 시작하는 모든 학생 기록을 추출합니다.
서버를 실행하면 두 개의 항목이 반환된 것을 볼 수 있습니다.
OR
문이 있는 기본 예를 보았지만 다른 필터와 더 많은 OR
문을 추가할 수 있습니다. 이제 OR
문을 사용하는 예를 하나 더 살펴보겠습니다. 하지만 이번에는 Q
개체를 사용합니다.
이것은 큐 개체에 대한 자세한 데모는 아니지만 Q
개체를 사용하여 더 복잡한 쿼리를 작성할 수 있다고 말할 것입니다. Q
객체를 활용하는 예를 보여드리겠습니다.
코드 명령은 거의 동일합니다. Q
객체 주위에 모든 것을 래핑하고 |
연산자를 사용하면 다른 Q
개체를 추가합니다. Student.objects.filter()
를 다시 추가할 필요가 없습니다.
이것을 먼저 작성하고 성을 surname__startswith
인수에 전달했어야 합니다.
계속해서 이 쿼리를 실행하여 동일한 결과를 반환하겠습니다.
이것을 확장하고 싶다면 이 OR
문을 원하는 만큼 계속 추가할 수 있습니다. 우리는 성이 baldwin
으로 시작하는 곳을 제외하고 모든 학생을 선택한다는 의미의 not ~Q
를 추가했습니다.
이제 데이터베이스에서 항목을 제거하거나 선택하지 않는 데 사용되는 ~
를 정의하기 때문에 모든 baldwin
이 더 이상 표시되지 않는다는 것을 알 수 있습니다.
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn