Q를 사용하면 쿼리에 and, or을 적용시킬 수 있다.
from django.db.models.query_utils import Q
class UserView(APIView)
def get(self, request):
# 취미 중 산책이 있거나 나이가 19살보다 많고 김씨인 사람만 필터 사람만 필터
qyery = Q(hobby__name="산책") | Q(age__gt=19, user__name__startswith="김")
# 취미 중 산책이 있으면서 나이가 19살보다 많은 사람만 필터
qyery = Q(hobby__name="산책") & Q(age__gt=19)
user_profile_list = UserProfileModel.objects.filter(qyery)
#요런식으로도 활용 가능
title : 검색어
contents : 검색어
ArticleModel.objects.filter(
Q(title__contains=title) | Q(contents__contains=content)
)
'Django > Django Rest Framework' 카테고리의 다른 글
22. Django DRF serializer 심화 / updater (0) | 2022.06.22 |
---|---|
21. Django DRF serializer 심화 / validator (0) | 2022.06.21 |
19. Django DRF orm 심화 (0) | 2022.06.20 |
18. Django DRF permission_classes/admin, 사용자 별 권한 설정 (0) | 2022.06.20 |
17. Django DRF admin 페이지 심화 (0) | 2022.06.20 |