Запустите скрипт для заполнения БД 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%s@test.com' %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)
2 ответов
вы можете добавить свой sys-путь к скрипту, например:
import sys
sys.path.append('/path/to/your/djangoproject/')
надеюсь, что это помогает.
мой скрипт работал после того, как я добавил Эти строки перед установкой в качестве ОС.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'
спасибо всем!