Django ObjectDoesNotExist

Min-Ho Lee·2020년 11월 7일
0

Learn Django

목록 보기
10/13

Sun_Nov_8
.
.
.
장고에서 오브젝트가 존재하지 않을 때의 에러를 효율적(?)으로 잡아주는 방법에 대해서 다루려고 한다.

일단 user라는 객체와 photo라는 객체를 가져오려는데 없을 수도 있다.

그럴 때 우리는(나만 인가? ㅋㅋㅋ) 다음과 같이 에러를 잡아준다.

try:
    user  = User.objects.get(id=1)
    photo = Photo.objects.get(id=33)
except ObjectDoesNotExist:
    return JsonResponse({'message':'Object Does Not Exist'}, status=400)

물론 저 ObjectDoesNotExist는 import를 해줘야 사용이 가능하다.

하지만 이렇게 에러를 잡아주면 어떤 object가 없는지 판단하기 어렵다.

해결 방법은 다음과 같다.

ObjectDoesNotExist가 아닌 Object(이름).DoesNotExist로 에러 처리를 해주면 된다.

이해하기 쉽게 예제 코드를 가져왔다.

try:
    user  = User.objects.get(id=1)
    photo = Photo.objects.get(id=33)
except User.DoesNotExist:
    return JsonResponse({'message':'User Does Not Exist'}, status=400)
except Photo.DoesNotExist:
    return JsonResponse({'message':'Photo Does Not Exist'}, status=400)

이렇게 오브젝트의 이름으로 하나하나 나눠서 에러 처리를 해주는 것이다.

이렇게 에러 처리를 해준다면
ObjectDoesNotExist를 import 해줄 필요도 없고
어떤 Obj이 없는지 보다 정확하게 판단이 가능하다. 완전 굿👍

profile
🐇 Rabbit can take a rest, but 🐢 turtle can't

0개의 댓글