2016-11-15 202 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