ID 검증

0

장고 프로젝트

목록 보기
6/15
post-thumbnail

코드

@csrf_exempt
def user_login(request):
    data = JSONParser().parse(request)
    account = data['pid']
    password = data['pwd']

    try:
        target = Account.objects.get(pid=account)
    except Account.DoesNotExist:
        return JsonResponse("Check your ID", safe=False, status=400)

    if request.method == 'POST':
        posted_inform = Account.objects.values("pid", "pwd").get(pid=account)
        posted_account = posted_inform['pid']
        posted_password = posted_inform['pwd']

        if account == posted_account and password == posted_password:
            return JsonResponse("Login Success", safe=False, status=200)

        if password != posted_password:
            return JsonResponse("Check your PASSWORD", safe=False, status=400)
    else:
        return JsonResponse("Http Method Error", safe=False, status=400)

결국 DoesNotExist를 통해 해결했다.

DoesNotExisttry - except문과 함께 어제 그저께부터 계속 사용했었다.

try:
        target = Account.objects.get(pid=account)
    except Account.DoesNotExist:

나는 exceepttarget.DoesNotExist를 쓰고 있었다..🤦‍♂️
target 대신에 클래스 이름을 써줘야 했다.

Python언어의 class를 깊이 공부하지 않아 발생하는 문제라는 설명을 들었다.
주위에서도 객체 지향이 뭔지 제대로 들여다볼 필요가 있다는 말을 해줬다.

일단 처리를 해야 하니까 그냥 클래스 이름(테이블 이름)만 쓰고.DoesNotExist를 붙인다고 알아둬야겠다.

그리고 시간을 좀 더 내서 Python class부분과 예외처리 부분을 봐둬야겠다.


오류 목록

  • matching query does not exist

  • UnboundLocalError: local variable 'var_name' referenced before assignment

0개의 댓글