我试图从另一个python脚本访问我的Django(v1.10)应用程序数据库,并遇到一些麻烦.
这是我的文件和文件夹结构:
store
store
__init.py__
settings.py
urls.py
wsgi.py
store_app
__init.py__
admin.py
apps.py
models.py
...
db.sqlite3
manage.py
other_script.py
Run Code Online (Sandbox Code Playgroud)
根据Django的文档,我other_script.py看起来像这样:
import django
from django.conf import settings
settings.configure(DEBUG=True)
django.setup()
from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)
但它会生成运行时错误:
RunTimeError: Model class store.store_app.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
Run Code Online (Sandbox Code Playgroud)
我应该注意到我的INSTALLED_APPS列表包含store_app最后一个元素.
如果相反,我尝试传递这样的配置:
import django
from django.conf import settings
from store.store_app.apps import StoreAppConfig
settings.configure(StoreAppConfig, DEBUG=True)
django.setup()
from store.store_app.models import MyModel
Run Code Online (Sandbox Code Playgroud)
我明白了:
AttributeError: type object 'StoreAppConfig has …Run Code Online (Sandbox Code Playgroud)