개발/삽질일기

[Django] 다 쓴 코드도 다시 보자

devculture309 2023. 4. 27. 23:17
반응형

1) 나의 영어 타자 실력을 믿지 말자

오늘도 어제와 마찬가지로 에러와 마주치고 만다

사건은 사용자가 직접 설문조사 질문을 작성하여 post 버튼을 누르면 데이터에 사용자가 작성한 질문에 저장되고, 저장이 잘됐다는 내용과 함께 사용자가 저장한 설문조사 질문의 질문 내용과 질문 id, 질문의 소유자(사용자)를 띄워주는 프로그램을 작성하는 데서 발생하였다.

해당 코드를 작성하고 컴파일 한 뒤 POST 버튼을 누르는 순간!

에러 내용을 보니 'owner'라는 변수를 못찾겠다고 하더라

이상하다.. 분명 있는데.. 방금 전 작성한 소스를 아무리 봐도 잘못된 점을 못 찾았다.

그렇다면, 그 윗단에 해당하는 소스에서 잘못된 게 있을 거라 판단하여, 모델들을 정의하는 models.py 소스 파일을 찾아봤고 Question 모델을 정의한 부분을 보는데...

잘못된 부분이 없는 거 같은.... 어..?

쓰읍.....

'owenr'를 'owner'로 수정하고 다시 migrate를 진행한 하였다

Debug Complete..!

 

 

2) Tabnine AI Autocomplete를 과신하지 말자

Tabnine AI Autocomplete은 정말 혁신적인 extension이다. ai기술을 활용하여 사용자가 어떤 코드를 작성할지 미리 보여주고 tab키를 누르면 자동으로 코드가 작성되는 정말 편리한 도구이다. 그렇지만, 항상 내가 원하는 코드를 추천해 주는 것이 아니기 때문에, tab키를 누르기 전 주의를 요하는 extension이다.

강의에서 보던 저 편리한 extension을 나는 너무 갖고 싶었고, 여기저기 찾아본 후 설치할 수 있었기 때문에, 자동완성 기능에 뽕에 취할 수밖에 없었다.

하지만, 그 뽕은 적당히 취했어야 했다....

 

나는 자동완성 기능을 활용하여 url에 질문 id를 입력하면 사용자가 작성한 질문만 text란이 나타나도록 하는 코드를 작성하였다. 그리고, 서버를 돌려보는데..

응 아니야

하...... 에러는 열받지만, 자세히 봐야 고칠 수 있다. 

찾았다 요놈

QuestionDetail.py에서 문제가 생겼다는 것을 확인하고 보는데..

아무 문제가 없다는 것을 확인하였다. 하지만, 이 코드에서 'IsOwnerOrReadOnly' 추가하면서 문제가 발생하였고, IsOwnerOrReadOnly는 permissions.py를 import 하면서 발생하였기 때문에, permission.py를 확인하였는데...

내가 구현하고자 하는 프로그램은 질문 id을 url에 넣어 문서를 요청했을 때, 해당 문서에 있는 질문 작성자(질문의 owner, obj.owner)와 해당 문서를 달라고 한 user(로그인되어 있는 user, request.user)가 같은지 비교하는 것이다. 하지만, 나는 자동완성 기능 뽕에 취한 나머지, 자동완성으로 작성된 obj.user를 인지하지 못하고 발생하였다..

따라서, 수정하였고

Debug Complete....

반응형