2016-11-15 164 views
0

根据official docsthis previous question,只需将代码放入设置中的启动脚本字段即可。我已经这样做了,但是我的代码没有运行。我开始脚本是:Pycharm,启动脚本不运行

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

您的代码存在问题。您正在使用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" 
+0

我使用了Pycharm的默认代码。我的帖子被编辑以混淆代码的顺序。 – Deleet