Django как решить ошибку apps are not loaded yet?

Я использую apscheduler для своего проекта Django. Я пытаюсь выводить список всех пользователей каждые 10 секунд. Но когда я пытаюсь это сделать, возникает ошибка:

django.core.exceptions.AppRegistryNotReady: Приложения еще не загружены.

scheduler.py

from apscheduler.schedulers.background import BackgroundScheduler
from accounts.models import UserProfile

sched = BackgroundScheduler()
def period():
    users = UserProfile.objects.all()
    print(users)
def start():
    sched.add_job(period, 'interval', seconds=10)
    sched.start()

apps.py

from django.apps import AppConfig
from dashboard.scheduler import start

class DashboardConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'dashboard'
    def ready(self):
        start()

accounts/models.py

from django.contrib.auth.models import AbstractUser
from django.db import models


class UserProfile(AbstractUser):
    username = models.CharField(max_length=500, unique=True)
    first_name = models.CharField(max_length=200)
    last_name = models.CharField(max_length=200)
    password = models.CharField(max_length=250)
    email = models.EmailField(max_length=254)
    isUserActive = models.BooleanField(default=False)

    def __str__(self):
        return self.username

Например, когда я делаю:

def period():
    print("okey!")

Это работает. Но когда я пытаюсь получить объекты модели, он выдает ошибку. Как я могу ее решить?

traceback

Импортируйте модуль планировщика только в функции ready, иначе вы импортируете сериализатор, и, таким образом, по степени модели до того, как они будут загружены:

from django.apps import AppConfig
# no import of the sechduler

class DashboardConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = 'dashboard'
    
    def ready(self):
        # import the scheduler in the ready function
        from dashboard.scheduler import start
        start()
Вернуться на верх