본문 바로가기

Python/Django

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet. # app.models import 할 때

728x90
반응형

Celery 실습 중에 아래 코드를 작성하고 Script를 실행하니 다음과 같은 에러 발생

from django_celery_beat.models import PeriodicTask

django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.

 

ChatGPT)

It looks like you are trying to use Django before the application registry has been fully initialized. This can happen if you are trying to access models before the app containing them has been fully loaded.

To fix this issue, make sure that you are not trying to access models or the Django ORM before the application registry has been fully populated.

 

 

해결책

import django

if __name__ == '__main__':
    django.setup()
    from django_celery_beat.models import PeriodicTask

 

* if __name__ == '__main__': 조건 없이 쓸 수도 있지만, 외부에서 import 할 때 스크립트가 전체가 다 실행되는 일을 막기 위해서 쓰도록 하자

 

* 왜 이런 error가 발생할까. django로 project를 시작하거나, app을 만들면 기본적으로 제공되는 파일들이 있다. project의 settings.py, urls.py 등.. 그리고 app을 만들면 생기는 views.py 등..

이런 기본적으로 생기는 파일들 외에서 (위에서는 Celery와 관련된 파일) ORM을 쓸 때 이런 문제가 생기는 듯 하다.

(짐작이니 추후에 좀 더 알아보자)

 

 

출처:

https://www.olivierpons.com/2022/01/27/django-scripting-appregistrynotready-apps-arent-loaded-yet-solution/

https://stackoverflow.com/questions/34114427/django-upgrading-to-1-9-error-appregistrynotready-apps-arent-loaded-yet

728x90
반응형