2011-08-15 3 views
2

DJANGO_SETTINGS_MODULE = APPNAME.settingsを使用して、モデルクラスをインポートして、linuxコマンドラインでpythonスクリプトを実行することができる、さまざまな記事を読んでいます。私が実行してみました:DJANGO_SETTINGS_MODULEが私のモデルクラスをインポートしていません

DJANGO_SETTINGS_MODULE = dishtank.settings PYTHONPATH = $ HOME/pythonDirLocationパイソンpythonScript.py

私のPythonスクリプトでは、私はそのように私のアプリの一つに私のmodel.pyファイルからいくつかのクラスをインポートする必要があります私は自分のデータベース内のテーブルを編集することができます。私のスクリプトで実行するためのすべての私のdjangoの設定をインポートするために欠けているものはありますか?

答えて

1

DJANGO_SETTINGS_MODULE = APPNAME.settingsは、PROJECT.settingsである必要があります。私は通常、その方法を避け、スタンドアロンスクリプトの先頭にsetup_environを使用することを好む。

from django.core.management import setup_environ 
from yourproject import settings 

setup_environ(settings) 

from yourproject.app.models import YourModel 
8

setup_environソリューションは、このように新しいソリューションをofficial docのガイドラインに従うことで、deprecated since version 1.4です。 ./manage.py my_command

、よりよい解決策があることができることを

#!/usr/bin/python 
# Deprecated way: 
# from django.core.management import setup_environ 
# import settings 
# setup_environ(settings) 

import sys 
import os 

# If you find a solution that does not need the two paths, please comment! 
sys.path.append('$path_to_root_of_project$') 
sys.path.append('$path_to_root_of_project$/$project_name$') 

os.environ['DJANGO_SETTINGS_MODULE'] = '$project_name$.settings' 
from django.conf import settings 

# Beginning of your script... 

注意(該当する場合)例えば、custom management commandでスクリプトを統合するために:

は本質的には、次のようにコードを適応させる必要があります

関連する問題