문제

Django에는 쿼리 세트 용 복잡한 사용자 정의 필터를 작성하는 표준 방법이 있습니까?

내가 쓸 수있는 것처럼

MyClass.objects.all().filter(field=val)

나는 다음과 같은 일을하고 싶다 :

MyClass.objects.all().filter(customFilter)

발전기 표현식을 사용할 수 있습니다

(x for x in MyClass.objects.all() if customFilter(x))

그러나 그것은 체인 성과 쿼리 세트가 제공하는 다른 기능을 잃을 것입니다.

도움이 되었습니까?

해결책

나는 당신이 관습이 필요할 것이라고 생각합니다 관리자.

다른 팁

관리자 방법을 사용하는 것이 좋습니다. 방법은 좋은 것이지만 질문에 더 직접 답변하려면 : 예, Q 객체. 예를 들어:

from django.db.models import Q

complexQuery = Q(name__startswith='Xa') | ~Q(birthdate__year=2000)

MyModel.objects.filter(complexQuery)

Q 객체는 |와 결합 할 수 있습니다 (또는), & (및) 및 ~ (아님).

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top