필터 집합을 사용하여 데이터베이스에서 여러 행을 검색하고 싶습니다.django 조건부 필터링 객체
조건부 필터가 django에 적용되는지 궁금합니다. 즉, "변수가 없으면 필터, 그렇지 않으면 필터링 적용 안 함"입니다. 이 같은
뭔가 : 내가 뭘하고 싶은 카테고리가 없음되지없는 경우에만 카테고리 필터를 적용입니다
user = User.objects.get(pk=1)
category = Category.objects.get(pk=1)
todays_items = Item.objects.filter(user=user, date=now()).conditional_filter(category=category))
.
범주가 없음 (요청 개체에 지정되지 않았 음을 의미) 인 경우이 필터는 전혀 적용되지 않습니다. 이것은 나를 'if-elif-else'상황의 무리로 만들어 줄 것이다.
이 방법이 있습니까?
감사합니다. 제가 이해하지 못하는 것은'category__isnull = True'입니다. 내 개체에 해당 범주 필드에 NULL이 없습니다. 항상 틀린 것입니다. – xpanta
@ xpanta, 대답에 설명했다. – danihp
@danihp, 죄송합니다. 여전히 __isnull = True를 이해하지 못했습니다. 이 상황에 적용됩니까? "카테고리"가 포함 된 양식, 사용자가 양식을 채우고 제출합니다. 사용자가 "범주"를 입력하지 않으면이 값은 ""입니다. 그런 다음 첫 번째 예제를 따르면 "범주"의 제약 조건없이 데이터베이스를 필터링 할 수 있습니까? 제 이해가 정확하다면 제게 정정하십시오. 미리 감사드립니다. –