python - tutorial - Error de Django al error 1.9 "AppRegistryNotReady: las aplicaciones aún no están cargadas".
django windows (21)
Cuando me actualicé a django 1.9 desde 1.8, recibí este error. Verifiqué respuestas para preguntas similares, pero no pensé que esto fuera un problema con ningún paquete o aplicación de terceros.
Traceback (most recent call last):
File "manage.py", line 10, in <module> execute_from_command_line(sys.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 350, in execute_from_command_line
utility.execute()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 342, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 176, in fetch_command
commands = get_commands()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/utils/lru_cache.py", line 100, in wrapper
result = user_function(*args, **kwds)
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 71, in get_commands
for app_config in reversed(list(apps.get_app_configs())):
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/apps/registry.py", line 137, in get_app_configs
self.check_apps_ready()
File "/home/kishore/.virtualenvs/andone/local/lib/python2.7/site-packages/django/apps/registry.py", line 124, in check_apps_ready
raise AppRegistryNotReady("Apps aren''t loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren''t loaded yet.
Modifiqué las aplicaciones instaladas para ''django.contrib.auth''.
Como otros han dicho, esto puede ser causado cuando no ha instalado una aplicación que aparece en
INSTALLED_APPS
.
En mi caso,
manage.py
intentaba registrar la excepción, lo que condujo a un intento de procesarla que falló debido a que la aplicación aún no se inicializó.
Al comentar la cláusula
except
en
manage.py
la excepción se mostró sin representación especial, evitando el error confuso.
# Temporarily commenting out the log statement.
#try:
execute_from_command_line(sys.argv)
#except Exception as e:
# log.error(''Admin Command Error: %s'', '' ''.join(sys.argv), exc_info=sys.exc_info())
# raise e
Cuando cambio mi versión de django a 1.9, no surge el error.
pip uninstall django pip install django==1.9
En el módulo "admin" de su paquete de aplicaciones, registre todas las bases de datos creadas en el módulo "modelos" del paquete.
Suponga que tiene una clase de base de datos definida en el módulo "modelos" como:
class myDb1(models.Model):
someField= models.Charfiled(max_length=100)
así que debes registrar esto en el módulo de administración como:
from .models import myDb1
admin.site.register(myDb1)
Espero que esto resuelva el error.
En mi caso, el error ocurrió cuando hice
python manage.py makemigrations
en
Django 2.0.6
.
La solución fue ejecutar
python manage.py runserver
y ver el error real (que era solo una variable de entorno que faltaba).
En mi caso, una de mis configuraciones, ''CORS_ORIGIN_WHITELIST'' se configuró en el archivo settings.py pero no estaba disponible en mi archivo .env. Así que le sugiero que verifique su configuración, especialmente las vinculadas a .env
Este error puede ocurrir cuando agrega una aplicación en
INSTALLED_APPS
en el archivo
settings.py
pero no tiene esa aplicación instalada en su computadora.
Tienes dos soluciones:
-
Install
esa aplicación usando administradores de paquetes comopip
en ubuntu -
O comente esa aplicación instalada en el archivo
settings.py
Este error también puede surgir si no está en su
virtual environment
que puede haber creado para su proyecto.
Este problema también se observa para settings.py inconsistente por escribir incorrectamente INSTALLED_APPS, verifique si incluyó correctamente las aplicaciones y las separó con ",".
Intenté toneladas de cosas, pero solo degradar Django a 1.8.18 solucionó este problema:
pip install django==1.8.18
Es una de las aplicaciones instaladas que falla, pero no pude encontrar cuál.
Intenta activar el entorno virtual. En mi caso, usando la herramienta de línea de comando git:
source scripts/activate
Resuelve mi problema
Intente agregar estas líneas en la parte superior de su archivo de configuración:
import django
django.setup()
Y si esto no lo ayuda a tratar de eliminar una a una las aplicaciones de terceros de su lista de aplicaciones instaladas.
Intente eliminar la
settings.LOGGING
completa. REGISTRO dictConfig y reinicie el servidor.
Si eso funciona, vuelva a escribir la configuración de acuerdo con la documentación v1.9.
https://docs.djangoproject.com/en/1.9/topics/logging/#examples
Mi problema fue que intenté importar un modelo de Django antes de llamar a
django.setup()
Esto funcionó para mí:
import django
django.setup()
from myapp.models import MyModel
El script anterior está en la carpeta raíz del proyecto.
Mi problema fue: django-reversion> = 1.8.7, <1.9
para django 1.9.7 debe usar: django-reversion == 1.10.0
Me actualizaron django-cms 3.2 a 3.3, y lo encontré comentando aplicaciones y luego descomentando.
Respuesta correcta aquí: https://.com/a/34040556/2837890
Para mí comentando
''grappelli.dashboard'',
''grappelli'',
en INSTALLED_APPS funcionó
Para mí, el problema vino del hecho de que estaba importando una aplicación en
INSTALLED_APPS
que estaba importando un modelo en su archivo
__init__.py
Yo tenía :
settings.py
INSTALLED_APPS = [
...
''myapp'',
...
]
myapp.__init__.py
from django.contrib.sites.models import Site
comentar
import models
en
myapp.__init__.py
hizo funcionar:
# from django.contrib.sites.models import Site
Puse la importación de
User
en el archivo de
settings
para administrar el token de llamada de descanso de esta manera
# settings.py
from django.contrib.auth.models import User
def jwt_get_username_from_payload_handler(payload):
....
JWT_AUTH = {
''JWT_PAYLOAD_GET_USERNAME_HANDLER'': jwt_get_username_from_payload_handler,
''JWT_PUBLIC_KEY'': PUBLIC_KEY,
''JWT_ALGORITHM'': ''RS256'',
''JWT_AUDIENCE'': API_IDENTIFIER,
''JWT_ISSUER'': JWT_ISSUER,
''JWT_AUTH_HEADER_PREFIX'': ''Bearer'',
}
REST_FRAMEWORK = {
''DEFAULT_PERMISSION_CLASSES'': (
''rest_framework.permissions.IsAuthenticated'',
),
''DEFAULT_AUTHENTICATION_CLASSES'': (
''rest_framework_jwt.authentication.JSONWebTokenAuthentication'',
),
}
Porque en ese momento, las bibliotecas de Django aún no están listas.
Por lo tanto, puse la
import
dentro de la función y comenzó a funcionar.
La función debe llamarse después de iniciar el servidor
Recibí este error al intentar acceder a los objetos del modelo en
apps.py
:
class QuizConfig(AppConfig):
name = ''quiz''
def ready(self):
print(''===============> Django just started....'')
questions_by_category = Question.objects.filter(category=2) # <=== Guilty line of code.
Intentar acceder a la
Question
antes de que la aplicación haya cargado la clase de modelo me causó el error.
Si el llenado de los archivos setting.py es correcto, puede intentar llegar a los archivos manage.py. Llame a danjgo.setup () en el método principal. Luego ejecute manage.py, finalmente ejecute nuevamente el proyecto, el problema podría desaparecer.
Tarde a la fiesta, pero Grappelli fue la razón de mi error también. Busqué la versión compatible en pypi y eso me lo arregló.
Tenía una función personalizada escrita en uno de mis modelos
__init__.py
archivo.
Estaba causando el error.
Cuando moví esta función de
__init__.py
funcionó.
django.setup () en la parte superior no funcionará mientras ejecuta un script explícitamente. Mi problema se resolvió cuando agregué esto en la parte inferior del archivo de configuración
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
import sys
if BASE_DIR not in sys.path:
sys.path.append(BASE_DIR)
os.environ[''DJANGO_SETTINGS_MODULE''] = "igp_lrpe.settings"
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "igp_lrpe.settings")
import django
django.setup()