Проблема с развертыванием Django ASGI (DAPHNE) на HEROKU

Последние пару дней я пытаюсь развернуть приложение и никак не могу заставить его работать: на heroku написано, что приложение развернуто, но потом, когда я захожу в журналы, я вижу ошибки. Я пытаюсь открыть приложение (например, страницу администратора) и получаю ошибку приложения. Я пробовал вызывать get_asgi_application до импорта чего-либо еще, но это не помогло. Вот ошибки, которые я получаю: ERROR

   File "/app/.heroku/python/lib/python3.9/site-packages/django/apps/registry.py", line 136, in check_apps_ready
    raise AppRegistryNotReady("Apps aren't loaded yet.")
 django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Process exited with status 1
 State changed from starting to crashed

at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=myappname.herokuapp.com request_id=18f76666-adff-40f8-83ae-55df56d78208 fwd="24.150.189.187" dyno= connect= service= status=503 bytes= protocol=https

мой asgi файл:


import os
from django.core.asgi import get_asgi_application
import django
#from channels.auth import AuthMiddlewareStack



#from channels.security.websocket import AllowedHostsOriginValidator
from channels.routing import ProtocolTypeRouter, URLRouter


#from .settings import ALLOWED_HOSTS
from myappnameapp.routing import *

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'myappname.settings')
django.setup()


#from django.urls import path

django_asgi_app = get_asgi_application()
from myappname.auth_middleware import TokenAuthMiddleware

application = ProtocolTypeRouter({
    # (http->django views is added by default)
    "http": django_asgi_app,
    'websocket': TokenAuthMiddleware(
        URLRouter(
            websocket_urlpatterns
        )
    ),
})


my procfile:

release: python manage.py migrate
web: daphne myappname.asgi:application --port $PORT --bind 0.0.0.0 -v2
worker: python manage.py runworker channel_layer -v2

Файл настроек:

import dj_database_url
from pathlib import Path
import os




# Build paths inside the project like this: BASE_DIR / 'subdir'.
BASE_DIR = Path(__file__).resolve().parent.parent


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/3.2/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = os.environ.get('SECRET_KEY')

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = False

ALLOWED_HOSTS = ['127.0.0.1', 
                 'myappname.herokuapp.com', 'localhost']


# Application definition


INSTALLED_APPS = [
    'channels',

    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    
    # 3rd party
    'allauth',
    'allauth.account',
    'allauth.socialaccount',
    'rest_framework',
    'rest_framework.authtoken',
    'dj_rest_auth',
    'dj_rest_auth.registration',
    'corsheaders',
    'fcm_django',
    'allauth.socialaccount.providers.google',
    'allauth.socialaccount.providers.facebook',
    'allauth.socialaccount.providers.apple',
    'django_celery_results',
    'django_celery_beat',
    'storages',
    # local
    'myappnameapi',
    'accounts',
    'myappnameapp',


]
from firebase_admin import initialize_app
FIREBASE_APP = initialize_app()
....


Я пробовал добавлять. import django, а затем вызывать django.setup() перед всем. но все та же ошибка продолжает появляться. любая помощь будет оценена по достоинству

Попробуйте поместить строку chat.routing import * после вызова get_asgi_application() вам не нужно будет вызывать django.setup()

import os
import django
from channels.auth import AuthMiddlewareStack
from channels.routing import ProtocolTypeRouter, URLRouter
from django.core.asgi import get_asgi_application

django_asgi_app = get_asgi_application()

//it is important to import after calling get_asgi_application()
from chat.routing import *

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "Grouplisten.settings")

application = ProtocolTypeRouter({
  "http": django_asgi_app,
  "websocket": AuthMiddlewareStack(
    URLRouter(
        websocket_urlpatterns
    )
 ),
 })
Вернуться на верх