[
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17729498#comment-17729498
]
ASF subversion and git services commented on AIRAVATA-3696:
-----------------------------------------------------------
Commit eef9d7e5bbc781291e5dc21ce5f683b17517b436 in airavata-django-portal's
branch refs/heads/master from Marcus Christie
[ https://gitbox.apache.org/repos/asf?p=airavata-django-portal.git;h=eef9d7e5 ]
AIRAVATA-3696 removing unused import
> Defer instantiating output view providers until after Django apps are ready
> ---------------------------------------------------------------------------
>
> Key: AIRAVATA-3696
> URL: https://issues.apache.org/jira/browse/AIRAVATA-3696
> Project: Airavata
> Issue Type: Bug
> Components: Django Portal
> Reporter: Marcus Christie
> Assignee: Marcus Christie
> Priority: Major
>
> Currently in settings.py all output view providers are instantiated. However,
> they might import code that transitively imports Django models which is not
> allowed in Django until all apps have been loaded (see
> https://docs.djangoproject.com/en/3.2/ref/applications/#initialization-process).
> A better approach would be to instantiate the output view providers in the
> ApiConfig.ready().
> {code}
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/settings.py",
> line 644, in <module>
> OUTPUT_VIEW_PROVIDERS[entry_point.name] = entry_point.load()()
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
> line 2517, in load
> return self.resolve()
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/pkg_resources/__init__.py",
> line 2523, in resolve
> module = __import__(self.module_name, fromlist=['__name__'], level=0)
> File
> "/Users/machrist/Airavata/django/regsnp-django-app/regsnp_django_app/output_views.py",
> line 32, in <module>
> from airavata_django_portal_sdk import urls
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/urls.py",
> line 6, in <module>
> from . import views
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/airavata_django_portal_sdk/views.py",
> line 16, in <module>
> from rest_framework.decorators import api_view
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/decorators.py",
> line 13, in <module>
> from rest_framework.views import APIView
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/views.py",
> line 17, in <module>
> from rest_framework.schemas import DefaultSchema
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/schemas/__init__.py",
> line 33, in <module>
> authentication_classes=api_settings.DEFAULT_AUTHENTICATION_CLASSES,
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
> line 225, in __getattr__
> val = perform_import(val, attr)
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
> line 168, in perform_import
> return [import_from_string(item, setting_name) for item in val]
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
> line 168, in <listcomp>
> return [import_from_string(item, setting_name) for item in val]
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/rest_framework/settings.py",
> line 177, in import_from_string
> return import_string(val)
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/utils/module_loading.py",
> line 17, in import_string
> module = import_module(module_path)
> File
> "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/importlib/__init__.py",
> line 126, in import_module
> return _bootstrap._gcd_import(name[level:], package, level)
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/api/authentication.py",
> line 6, in <module>
> from django_airavata.apps.auth import utils
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/utils.py",
> line 14, in <module>
> from . import models
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/django_airavata/apps/auth/models.py",
> line 17, in <module>
> class EmailVerification(models.Model):
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/db/models/base.py",
> line 108, in __new__
> app_config = apps.get_containing_app_config(module)
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/site-packages/django/apps/registry.py",
> line 253, in get_containing_app_config
> self.check_apps_ready()
> File
> "/Users/machrist/Airavata/django/django_airavata_gateway/venv/lib/python3.10/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.
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)