@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
를 통해 해결했다.
DoesNotExist
는 try - except
문과 함께 어제 그저께부터 계속 사용했었다.
try:
target = Account.objects.get(pid=account)
except Account.DoesNotExist:
나는 exceept
에 target.DoesNotExist
를 쓰고 있었다..🤦♂️
target
대신에 클래스 이름을 써줘야 했다.
Python언어의 class를 깊이 공부하지 않아 발생하는 문제라는 설명을 들었다.
주위에서도 객체 지향이 뭔지 제대로 들여다볼 필요가 있다는 말을 해줬다.
일단 처리를 해야 하니까 그냥 클래스 이름(테이블 이름)만 쓰고.DoesNotExist
를 붙인다고 알아둬야겠다.
그리고 시간을 좀 더 내서 Python class부분과 예외처리 부분을 봐둬야겠다.
matching query does not exist
UnboundLocalError: local variable 'var_name' referenced before assignment