Django: App in subdirectory relative import
up vote
0
down vote
favorite
I'm settings up a Django project following the structure of this cookiecutter template but I'm having problems with explicit relative imports in my apps.
I'm trying to import my models using from .model import ModelA
but I'm getting this error from Django:
RuntimeError: Model class core.models.ModelA doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
My project is structured like this:
my_project
- config
- __init__.py
- settings.py
- urls.py
- my_project
- __init__.py
- core # this is an app
- __init__.py
- models.py
# remaining app files
manage.py
I have of course put my app in INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'my_projects.core.apps.CoreConfig', # my app
]
And CoreConfig is setup as:
class CoreConfig(AppConfig):
name = 'my_project.core'
It feels like django is not loading the AppConfig when using explicit relative import.
Everything works perfectly if I change my imports to absolute paths from my_project.core.models import ModelA
What am I missing?
EDIT 1:
Might also be worth mentioning that I've added a few rows to my manage.py
(as in the cookiecutter template) for adding the my_project
directory to the sys.path.
from django.conf import settings
sys.path.append(os.path.join(settings.ROOT_DIR, 'my_project'))
python django
add a comment |
up vote
0
down vote
favorite
I'm settings up a Django project following the structure of this cookiecutter template but I'm having problems with explicit relative imports in my apps.
I'm trying to import my models using from .model import ModelA
but I'm getting this error from Django:
RuntimeError: Model class core.models.ModelA doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
My project is structured like this:
my_project
- config
- __init__.py
- settings.py
- urls.py
- my_project
- __init__.py
- core # this is an app
- __init__.py
- models.py
# remaining app files
manage.py
I have of course put my app in INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'my_projects.core.apps.CoreConfig', # my app
]
And CoreConfig is setup as:
class CoreConfig(AppConfig):
name = 'my_project.core'
It feels like django is not loading the AppConfig when using explicit relative import.
Everything works perfectly if I change my imports to absolute paths from my_project.core.models import ModelA
What am I missing?
EDIT 1:
Might also be worth mentioning that I've added a few rows to my manage.py
(as in the cookiecutter template) for adding the my_project
directory to the sys.path.
from django.conf import settings
sys.path.append(os.path.join(settings.ROOT_DIR, 'my_project'))
python django
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago
add a comment |
up vote
0
down vote
favorite
up vote
0
down vote
favorite
I'm settings up a Django project following the structure of this cookiecutter template but I'm having problems with explicit relative imports in my apps.
I'm trying to import my models using from .model import ModelA
but I'm getting this error from Django:
RuntimeError: Model class core.models.ModelA doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
My project is structured like this:
my_project
- config
- __init__.py
- settings.py
- urls.py
- my_project
- __init__.py
- core # this is an app
- __init__.py
- models.py
# remaining app files
manage.py
I have of course put my app in INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'my_projects.core.apps.CoreConfig', # my app
]
And CoreConfig is setup as:
class CoreConfig(AppConfig):
name = 'my_project.core'
It feels like django is not loading the AppConfig when using explicit relative import.
Everything works perfectly if I change my imports to absolute paths from my_project.core.models import ModelA
What am I missing?
EDIT 1:
Might also be worth mentioning that I've added a few rows to my manage.py
(as in the cookiecutter template) for adding the my_project
directory to the sys.path.
from django.conf import settings
sys.path.append(os.path.join(settings.ROOT_DIR, 'my_project'))
python django
I'm settings up a Django project following the structure of this cookiecutter template but I'm having problems with explicit relative imports in my apps.
I'm trying to import my models using from .model import ModelA
but I'm getting this error from Django:
RuntimeError: Model class core.models.ModelA doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
My project is structured like this:
my_project
- config
- __init__.py
- settings.py
- urls.py
- my_project
- __init__.py
- core # this is an app
- __init__.py
- models.py
# remaining app files
manage.py
I have of course put my app in INSTALLED_APPS:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'rest_framework',
'my_projects.core.apps.CoreConfig', # my app
]
And CoreConfig is setup as:
class CoreConfig(AppConfig):
name = 'my_project.core'
It feels like django is not loading the AppConfig when using explicit relative import.
Everything works perfectly if I change my imports to absolute paths from my_project.core.models import ModelA
What am I missing?
EDIT 1:
Might also be worth mentioning that I've added a few rows to my manage.py
(as in the cookiecutter template) for adding the my_project
directory to the sys.path.
from django.conf import settings
sys.path.append(os.path.join(settings.ROOT_DIR, 'my_project'))
python django
python django
edited Nov 11 at 12:20
asked Nov 11 at 12:13
Mattias
1221312
1221312
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago
add a comment |
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago
add a comment |
1 Answer
1
active
oldest
votes
up vote
0
down vote
When append urls in config.urls
, you should use my_projects.core.urls
instead of core.urls
. for example:
urlpatterns = [
...
# Your stuff: custom urls includes go here
path("my_projects/", include("my_projects.core.urls", namespace="my_projects")),
] + static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)
add a comment |
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
up vote
0
down vote
When append urls in config.urls
, you should use my_projects.core.urls
instead of core.urls
. for example:
urlpatterns = [
...
# Your stuff: custom urls includes go here
path("my_projects/", include("my_projects.core.urls", namespace="my_projects")),
] + static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)
add a comment |
up vote
0
down vote
When append urls in config.urls
, you should use my_projects.core.urls
instead of core.urls
. for example:
urlpatterns = [
...
# Your stuff: custom urls includes go here
path("my_projects/", include("my_projects.core.urls", namespace="my_projects")),
] + static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)
add a comment |
up vote
0
down vote
up vote
0
down vote
When append urls in config.urls
, you should use my_projects.core.urls
instead of core.urls
. for example:
urlpatterns = [
...
# Your stuff: custom urls includes go here
path("my_projects/", include("my_projects.core.urls", namespace="my_projects")),
] + static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)
When append urls in config.urls
, you should use my_projects.core.urls
instead of core.urls
. for example:
urlpatterns = [
...
# Your stuff: custom urls includes go here
path("my_projects/", include("my_projects.core.urls", namespace="my_projects")),
] + static(
settings.MEDIA_URL, document_root=settings.MEDIA_ROOT
)
answered 16 hours ago
baskershu
765
765
add a comment |
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Some of your past answers have not been well-received, and you're in danger of being blocked from answering.
Please pay close attention to the following guidance:
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53248640%2fdjango-app-in-subdirectory-relative-import%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
hi, I just had a same problem. Do you have solved this?
– baskershu
17 hours ago