에러꺼조;;😨// westargram 과제를 하다가 만난 에러를 해결하는 블로그입니다
필드에러
TypeError : Field 'id' expected a number but got <User : User object (33)>
단순이 user 필드 위에 user.id
를 붙여 타입을 맞춥니다.
디코딩 에러
unicode-objects must be encoded before hashing
이란 에러는 해싱하기 이전에 인코딩을 해야하는데 그렇지 않아서 발생한 에러입니다.
아래의 코드처럼 인코딩을 합니다.
hashed_password = bcrypt.hashpw(password.encode('utf-8'), bcrypt.gensalt()).decode('utf-8')
ValueError : Cannot assign "11" : "Follow.followeduser" must be a "User" instance
인스턴스를 넣어줘야 하는 자리에 .id 이런식으로 attribute 값을 넣어주려 했더니 에러가 발생한 경우입니다. 인스턴스를 맞춰주기 위해 89번 followeduser = followeduser
를 followeduser_id = followeduser
로 변경합니다.
django.db.utils.IntergrityError
는 없는 포스팅에 접근하면 오류가 나는 케이스입니다. 접근할 수 없으니 DB상에 child row를 추가하거나 업데이트할 수 없다고 합니다.
포스트가 없을 때 접근하지 못하였다는 JsonResponse를 내도록 하였는데 113번에 User
이 아닌 Post
로 변경하도록 합니다.
휴먼 에러~
93번 줄에 followeduser_id = followeduser.id
로 변수를 지정하니 AttributeError: 'int' object has no attribute 'id'
를 내뱉습니다. followeduser
이 id값으로 받는 객체이기 때문에 해당유저의아이디.id
를 한 경우로 id를 빼줍니다.