TIL23 Q객체를 이용한 코드 줄이기

chp9419·2021년 5월 31일
0
if User.objects.filter(email = data['email']):
    return JsonResponse({'MESSAGE':'USER_ALREADY_EXISIS'},status=400)

if User.objects.filter(nickname = data['nickname']):
    return JsonResponse({'MESSAGE':'USER_ALREADY_EXISIS'},status=400)
    
if User.objects.filter(phone_number=data['mobile']):
    return JsonResponse({'MESSAGE':'USER_ALREADY_EXISIS'},status=400)

if으로 구성된 코드를 Q객체를 이용하게 되면

if User.objects.filter(
                Q(email        = data['email'])| 
                Q(nickname     = data['nickname'])|
                Q(phone_number = data['mobile'])).exists():
    
                return JsonResponse({'MESSAGE':'USER_ALREADY_EXISIS'},status=400)

확 줄일수 있다. Q객체를 이용할때는exits()사용해주어야 한다.

그이유는 filter 통해서 레코드가 존재유무를 판별하는데 그때 exists()함수가 있으면 True 혹은 False로 구분지어주기 떄문이다.

Q객체는 장고 문서에도 있다.

profile
주어진 문제는 해결하고 공부하고 성장한다.

0개의 댓글