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

関連する問題