2013-11-26 5 views
6

पॉप्युलेट करने के लिए एक स्क्रिप्ट चलाएं मैं नाम के साथ मेरा मॉडल पूर्व-पॉप्युलेट करने के लिए निम्न स्क्रिप्ट चलाने के लिए चाहता हूं ... लेकिन मुझे एक त्रुटि मिलती है। स्क्रिप्टएक django डीबी

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

वास्तव में प्रश्न के साथ कुछ करने के लिए नहीं है, लेकिन एक यूनिक्स कमांड लाइन उपकरण है जिसे 'पेड़' कहा जाता है जो ड्राइंग निर्देशिका संरचनाओं को बहुत आसान बनाता है। यदि आप लिनक्स पर हैं तो 'सूडो एपीटी-इंस्टाल पेड़' करने का प्रयास करें। – wdh

+0

दुर्भाग्य से मैं काम पर खिड़कियों पर हूं ... मेरे पास घर पर मेरे लिनक्स बॉक्स पर है (पेड़ कमांड का मतलब है)। – Apostolos

उत्तर

5

आपके पास अपनी स्क्रिप्ट के लिए अपने sys पथ जोड़ सकते हैं जैसे:

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

आशा इससे मदद मिलती है। के बाद मैं os.environ वर 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

संबंधित मुद्दे