2013-11-26 9 views
6

次のスクリプトを実行して、私のモデルに名前などをあらかじめ入力します。しかし、エラーが発生します。スクリプトはスクリプトを実行してdjango dbを移植します

first_names = first_names.split('\n') 
last_names = last_names.split('\n') 
phones=[str(i) for i in range(2310000000,2310999999, 1563)] 
emails = ['test%[email protected]' %i for i in range(0,144)] 

import os 
os.environ['DJANGO_SETTINGS_MODULE']='project.settings' 

from customer.models import Customer 
from django.contrib.auth.models import User 

users = User.objects.all() 

if __name__ == "__main__": 
    for i in range(10): 
     customer = Customer(first_name=choice(first_names), last_name=choice(last_names), 
         telephone=choice(phones),email=choice(emails), creator=choice(users)) 
     customer.save() 

であり、エラーが

Traceback (most recent call last): 
    File "populatedb.py", line 431, in <module> 
    from customer.models import Customer 
ImportError: No module named customer.models 

です(私はそれを正しく "描く" ことができる場合)dir_treeは

-project_dir 
| 
|--customer 
|--| 
    |--models.py(etc...) 
| 
|--project(the settings file is here) 
|-- 
|--another_app 
|--scripts (here is my python script) 
+0

スクリプト自体はどこにありますか? – bozdoz

+0

本当に問題とは関係ありませんが、ディレクトリ構造の描画をもっと簡単にする 'tree'というUNIXのコマンドラインツールがあります。あなたがLinuxを使っているなら、 'sudo apt-get install tr​​ee'を実行してみてください。 – wdh

+0

Unfortunatelly私は仕事中の窓にいます...私は自宅の私のLinuxボックスでそれを持っています(木のコマンド私は意味する)。 – Apostolos

答えて

5

であるあなたは、あなたのスクリプトにあなたのsysのパスを追加してlike:

import sys 
sys.path.append('/path/to/your/djangoproject/') 

希望これは役に立ちます。私ははos.environするvar project_settings

script_path = os.path.dirname(__file__) 
project_dir = os.path.abspath(os.path.join(script_path,'..','..','project_folder')) 
sys.path.insert(0, project_dir) 
os.environ['DJANGO_SETTINGS_MODULE']='rhombus.settings' 

すべてのいただきありがとうございとして設定する前にこれらの行を追加した後

+0

これは私がやったことです...ありがとう! – Apostolos

3

私のスクリプトが働いていました!

関連する問題