我试图从另一个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
根据Django的文档,我other_script.py看起来像这样:
other_script.py
import django from django.conf import settings settings.configure(DEBUG=True) django.setup() from store.store_app.models import MyModel
但它会生成运行时错误:
RunTimeError: Model class store.store_app.models.MyModel doesn't declare an explicit app_label and isn't in an application in INSTALLED_APPS.
我应该注意,我的INSTALLED_APPS列表包含store_app了它的最后一个元素。
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
我得到:
AttributeError: type object 'StoreAppConfig has no attribute 'LOGGING_CONFIG'.
如果我进行编辑settings.py和添加,LOGGING_CONFIG=None则会遇到另一个有关另一个缺少属性的错误,依此类推。
settings.py
任何建议将不胜感激。
尝试这个
import sys, os, django sys.path.append("/path/to/store") #here store is root folder(means parent). os.environ.setdefault("DJANGO_SETTINGS_MODULE", "store.settings") django.setup() from store_app.models import MyModel
你可以在系统中的任何位置使用此脚本。