問題
モデルを操作するコードを作成し、コード末にいつもの if __name__ == '__main__': を記述して単体テストをしようとすると、
ModuleNotFoundError: No module named 'my_project' というエラーメッセージが表示。
modelのimport文でエラーが発生しているようだった。
from my_project.models import MyAppModel
対策
ファイル文頭に以下の記述。
if __name__ == '__main__':
import osimport sys
import django
sys.path.append(os.path.join(os.path.dirname(__file__), "..", ".."))
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
django.setup()
※以下の2ヵ所は作成した環境に合わせ修正。
sys.path.append(os.path.join(os.path.dirname(__file__), "..", ".."))
作成環境の階層に合わせ, "..", ".." を修正のこと。
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')
作成環境の階層に合わせ'config.settings'の記述を修正。
django.setup()でセットアップして設定を読み込んでくれるっぽい。
コメント
コメントを投稿