해결된 질문
작성
·
217
1
답변 2
1
장고 버전 4.0.5은 이번 달에 출시가 되었는 데요
1) 장고 3.0.14가 설치된 파이썬인터프리터 혹은 가상환경에 장고 라이브러리를 업그레이드하셨을 수 있습니다. 이는 pip install --upgrade django 명령 혹은 pip install "django~=4.0.0" 등의 명령으로 업그레이드하실 수 있습니다. // 본 강의 외에 연습으로 슬쩍 업그레이드를 하셨을 수 있구요. 아직 migrate auth를 하지 않으신 상황(auth의 0012 미적용 상태)에서 강제로 장고 버전을 내리실려면, 가상환경 활성화 후에 pip install "django==3.0.14" 를 입력하시면 됩니다.
2) 혹은 현재 머신에 장고 3.0.14이 설치된 파이썬인터프리터 혹은 가상환경이 있고, 장고 4.0.5가 설치된 파이썬인터프리터 혹은 가상환경이 있는 것입니다. 그래서 엉뚱한 파이썬인터프리터 혹은 가상환경을 사용하고 계시는 거죠.
파이썬으로 개발할 때에는 현 프로젝트에 사용하는 파이썬 인터프리터 혹은 가상환경의 경로를 정확히 인지할 필요가 있습니다. 그렇지 않는다면 엉뚱한 버전의 라이브러리를 참조하거나, 라이브러리를 설치하였음에도 라이브러리가 설치되어있지 않다는 오류는 만나실 수 있습니다.
화이팅입니다. :-)
1
안녕하세요.
보여주신 폴더 instagram, accounts, media, askcompany 중에
장고 앱은 accounts와 instagram 입니다.
askcompany 폴더는 프로젝트 설정을 담아두며,
media는 models.FileField/models.ImageField를 통해 저장된 파일들이 저장되는 폴더입니다.
accounts와 instagram 앱 외에도 장고 기본에서 제공해주는 앱들이 있습니다. settings 내에 INSTALLED_APPS 설정을 보시면 django.contrib 으로 시작하는 이름들이 있을 것입니다. 이 앱들이 장고 기본에서 제공해주는 앱들이구요. 이 중에 django.contrib.auth 앱이 있습니다. django/contrib/ 폴더 안에 auth 이름의 장고 앱이 있는 것입니다. // auth 앱은 인증과 관련된 기능을 제공해주고 있습니다.
장고 기본에서 제공해주는 앱들에 대해서는 우리가 마이그레이션 파일을 생성해줄 필요가 없습니다. 우리가 관리하는 장고앱들이 아니니깐요. 장고가 관리하는 장고앱들에 대해서는 생성된 마이그레이션 파일에 대해서 적용만 해주면 됩니다. 그러니makemigrations auth는 불필요하며, migrate auth 는 필요할 것입니다.
아래 링크에서도 확인하실 수 있는 데요. 장고 3.0 버전에서는 auth 앱의 마이그레이션이 0011번까지 있습니다.
https://github.com/django/django/tree/3.0.14/django/contrib/auth/migrations (3.0에서의 마지막 버전)
장고 3.1 버전에서는 auth 앱에 0012번 마이그레이션이 추가되었네요.
https://github.com/django/django/tree/3.1/django/contrib/auth/migrations (3.1에서의 첫 버전)
그러니 아래의 메세지. 즉, auth 앱에서 1개의 미적용 마이그레이션 내역이 있습니다. 라는 메세지는
You have 1 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): auth.
장고 3.0일때 장고 프로젝트를 생성하시고 초기에 python manage.py migrate 하셨을 때에는
auth 앱에서 0011번까지 마이그레이션이 수행되었을 테구요.
그 이후에 장고 버전을 3.1 이상으로 올리셨으니, auth 앱에서는 0011번까지 수행된 상황이며 미수행된 0012가 있어서 위 경로 메세지가 출력되는 것입니다. 그러니 python manage.py migrate auth 명령으로 미적용 마이그레이션까지 적용하시면 됩니다.
현재의 장고 버전은 python manage.py --version 명령으로 확인하실 수 있습니다.
화이팅입니다. :-)
제 뒤통수에서 보고 계신 것처럼 정확하시네요. 감사합니다. 말씀해주신 것처럼 askcompany setting.py에서는 초기 장고 버전이 3.0.14로 확인되고 python 명령어로 확인한 결과 지금 버전은 4.0.5로 확인됩니다.
그런데 "그 이후에 장고 버전을 3.1 이상으로 올리셨으니" 이 부분에서 질문이 있습니다. 강의 중에 장고 버전을 올리는 업데이트를 진행한 적이 있나요?(있었다면 제 집중력이 부족했던 탓이니 너그러이 봐주세요...) 프로젝트 초반에 3.x 버전으로 인스톨한 것과 당시 3.0.14 버전이 깔린 것은 기억하는데, 이후 개인적으로 업데이트를 진행한 적은 없는데도 버전은 업데이트 되어 있네요.
만약 장고 자체적으로 "주기적으로 최신 버전으로 업데이트 해라."라는 명령?이 있다면 이해될 것 같긴한데...
헷갈리실 때에는 가상환경을 제거하시고, 가상환경을 새롭게 생성하시고 원하시는 버전의 라이브러리를 다시 설치하시는 것도 한 방법입니다.