[ 
https://issues.apache.org/jira/browse/AIRAVATA-3696?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17717259#comment-17717259
 ] 

ASF subversion and git services commented on AIRAVATA-3696:
-----------------------------------------------------------

Commit eef9d7e5bbc781291e5dc21ce5f683b17517b436 in airavata-django-portal's 
branch refs/heads/develop 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)

Reply via email to