본문 바로가기
Django/Django Rest Framework

20. Django DRF Q

by S.T.Lee 2022. 6. 21.

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)
)