根据official docs和this previous question,只需将代码放入设置中的起始脚本字段即可。我已经这样做了,但我的代码没有运行。我的起始脚本是:
import sys
import django
import django_manage_shell
from www.models import *
print('Python %s on %s' % (sys.version, sys.platform))
print('Django %s' % django.get_version())
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django):
django.setup()
django_manage_shell.run(PROJECT_ROOT)
print("test")
test = "test"
重新启动控制台后,应用程序模型不可用,没有"测试"看到了,test
对象不存在。
但是,由于django
已成功导入,因此其中一部分会运行:
In[3]: django
Out[3]:
<module 'django' from '/home/emil/GP/env/lib/python3.5/site-packages/django/__init__.py'>
如何让控制台自动运行我输入的脚本?具体来说,我希望它能自动导入模型。
答案 0 :(得分:0)
您的代码存在问题。您正在使用PROJECT_ROOT
,但未将其设置为任何位置。您也应该在执行django.setup()
import sys
import django
import django_manage_shell
print('Python %s on %s' % (sys.version, sys.platform))
print('Django %s' % django.get_version())
sys.path.extend([WORKING_DIR_AND_PYTHON_PATHS])
if 'setup' in dir(django):
django.setup()
PROJECT_ROOT = WORKING_DIR_AND_PYTHON_PATHS
django_manage_shell.run(PROJECT_ROOT)
from django.apps import apps
for _class in apps.get_models():
globals()[_class.__name__] = _class
print("test")
test = "test"