Dev./Error. (4) 썸네일형 리스트형 [Error] ModuleNotFoundError: No module named 'apps.views.main'; 'apps.views' is not a package 문제 발생 원래 Django에서는 app 디렉토리 내의 views.py 파일에 뷰 함수나 클래스를 작성한다. 하지만 나 같은 경우 views.py 파일이 복잡해져 파일로 분리해 작성하고 싶었다. 이 오류는 분리한 파일을 폴더로 생성하고 폴더 내부에 파일들을 생성해 다른 파일에서 해당 뷰를 import 할 때 난 오류이다. 원인 기존의 views.py 파일과 새로 생성한 디렉토리 이름 간의 이름 충돌이 발생한 것이다. 예를 들어, 기존의 views.py 파일과 myapp/views 디렉토리에 새로 생성한 main.py 파일이 존재하는 경우, from . import views와 같은 import 구문이 views 파일인지 views 폴더인지 어떤 것을 참조해야 하는지 알 수 없기 때문에, ModuleNot.. [Error] TypeError: 'BasePermissionMetaclass' object is not iterable in django rest framework permission_classes를 작성해주다 난 오류이다. permission_classes는 리스트와 튜플형태로 작성 가능한데 튜플로 작성할 때는 문법적 차이로 살짝 형태가 다르다. 파이썬에서 튜플을 만들 때 하나의 요소만 있을 경우, 그냥 괄호만으로는 튜플임을 인식하지 못하기 때문에 튜플 안에 하나의 요소만 있더라도 반드시 쉼표(,)를 함께 작성해주어야 한다. permission_classes = (IsStaffUser,) OR permission_classes = [IsStaffUser] [Error] DETAIL: There are 2 other sessions using the database. PostgreSQL을 사용하고 있는데 DROP DATABASE를 해야하는 상황에서 발생한 에러이다. 전체 에러의 의미는 해당 데이터베이스에 다른 사용자 혹은 세션이 엑세스 하고 있다는 뜻이다. 일반적으로 데이터베이스에는 여러 사용자가 접근할 수 있지만 데이터베이스는 하나의 세션에 의해 동시에 접근되는 것을 허용하지 않는다. 즉 현재 데이터베이스에 이미 두 개의 세션이 존재하고 있다는 의미이다. 데이터베이스를 삭제하기 위해서는 활성화 된 세션을 먼저 강제로 종료시켜주어야 한다. select pg_terminate_backend(pid) from pg_stat_activity where datname = 'DB명'; pg_terminate_backend ---------------------- t t 해당 .. [Error] TypeError: change_view() missing 1 required positional argument: 'object_id' TypeError: change_view() missing 1 required positional argument: 'object_id' Simplt JWT를 사용해서 미들웨어단에서 처리되도록 로그인 로직을 작성했다. 잘 돌아가는 것을 확인 한 후 다음 이슈를 해결하기위해 어드민 페이지에 접속해 아무 데이터나 클릭한 순간 발생한 에러이다. GET /admin/users/user/1/change/ 해당 url을 보면 어드민 유저페이지의 1번 유저를 수정할 때 발생했다. 유저아이디 1번의 파라미터 값을 읽지 못한것이다. 에러내용을 쭉 보면 내가 작성했던 미들웨어 훅(process_view)에서 발생 하는 것을 알 수 있었다. Middleware Hook 클래스 형식으로 미들웨어를 정의할 때 HTTP requ.. 이전 1 다음