Я хочу запустить функцию инициализации при загрузке моего приложения django, используя метод AppConfig :: ready.
Тем не менее, функциональность, которую я хочу запустить, должна использовать модели django, и вы не можете импортировать этот модуль в тот момент, когда импортируется apps.py, потому что модели в настоящее время загружены не полностью.
Как мне обойти это ограничение?
from django.apps import AppConfig
from . import populate_db
from . import server_settings
class ServerConfig(AppConfig):
name = 'server'
def ready(self):
populate_db.populate_db(server_settings.opt.data_root)
выдает там ошибки:
File "/home/ian/dev/obd/django_site/server/apps.py", line 2, in <module>
from . import populate_db
File "/home/ian/dev/obd/django_site/server/populate_db.py", line 16, in <module>
import server.models as models
File "/home/ian/dev/obd/django_site/server/models.py", line 6, in <module>
class Scan(models.Model):
File "/home/ian/.local/lib/python3.6/site-packages/django/db/models/base.py", line 87, in __new__
app_config = apps.get_containing_app_config(module)
File "/home/ian/.local/lib/python3.6/site-packages/django/apps/registry.py", line 249, in get_containing_app_config
self.check_apps_ready()
File "/home/ian/.local/lib/python3.6/site-packages/django/apps/registry.py", line 132, in check_apps_ready
raise AppfunctionRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.