我正在开发一个更大的 Django 项目,该项目需要多个级别的子文件夹,例如应用程序所在的
applications/examples/example_1
。
将此应用程序添加到
settings.py
时
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'home_app.apps.HomeAppConfig',
'applications.examples.example_1.apps.Example1Config',
]
home_app
效果很好,但是example_1
给这个
django.core.exceptions.ImproperlyConfigured: Cannot import 'example_1'. Check that 'applications.examples.example_1.apps.Example1Config.name' is correct.
我的
app.py
在example_1
是这样的:
from django.apps import AppConfig
class Example1Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'example_1'
C:.
│ db.sqlite3
│ manage.py
│
├───applications
│ ├───examples
│ ├───example_1
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ views.py
│ │ __init__.py
│ │
│ ├───migrations
│ │ __init__.py
│ │
│ └───__pycache__
│ apps.cpython-311.pyc
│ __init__.cpython-311.pyc
│
├───home_app
│ │ admin.py
│ │ apps.py
│ │ models.py
│ │ tests.py
│ │ urls.py
│ │ views.py
│ │ __init__.py
│ │
│ ├───migrations
│ │ │ __init__.py
│ │ │
│ │ └───__pycache__
│ │ __init__.cpython-311.pyc
│ │
│ ├───static
│ │ background_img.jpg
│ │
│ ├───templates
│ │ └───home_app
│ │ about.html
│ │ base.html
│ │ home.html
│ │
│ └───__pycache__
│ admin.cpython-311.pyc
│ apps.cpython-311.pyc
│ models.cpython-311.pyc
│ urls.cpython-311.pyc
│ views.cpython-311.pyc
│ __init__.cpython-311.pyc
│
└───Project
asgi.py
settings.py
urls.py
wsgi.py
__init__.py
__init__.py
添加到树的每个级别:
applications/__init__.py
和 applications/examples/__init__.py
不仅仅在应用程序级别。apps.py
应该是:from django.apps import AppConfig
class Example1Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'applications.examples.example_1'
不只是:
from django.apps import AppConfig
class Example1Config(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = 'example_1'