[django] get() returned more than one User

마이구미·2021년 12월 9일
0

다시 볼 것

목록 보기
3/6
post-thumbnail

상황

회원가입시 중복 아이디 확인이나 로그인을 위해서 현재 사용자로 등록된 리스트에서 입력 값을 조회해볼 경우가 있었다. 본인의 경우 입력받은 userId로 중복확인 및 로그인 처리를 했는데 만에 하나 중복된 사용자가 있다면 원활하게 처리가 되지 못할 것이다. 그래서 이를 위해서 아래와 같은 코드를 작성했고 에러가 발생했다.

find = User.objects.get(user_id=user_id)        
-----------------------------------------
MultipleObjectsReturned: get() returned more than one User

원인 및 해결

말 그대로 get()이 하나 이상의 값을 반환했다는 의미이다. 정상적으로만 동작할 경우 중복된 아이디는 존재하지 않을 것이지만 혹시 모를 사태에 고려해 중복된 아이디 값이 존재하는 경우도 상정해 처리하려고 하였다.

찾아보니 get()은 하나의 값만 반환한다고 한다. 따라서 복수 개의 반환 값을 얻기 위해서는 filter()을 사용해야 한다고 한다. 아래를 참고했다.

https://docs.djangoproject.com/en/dev/topics/db/queries/

profile
마이구미 마시쪙

0개의 댓글