Импорт модели Django в сценарий Python Cli - PullRequest
2 голосов
/ 27 мая 2011

Я только что запустил это приложение django (также неопытный пользователь python) и хотел получить доступ к моделям.

У меня есть следующее:

import sys, os
sys.path.append('/Users/jx/dev/arc/django/second/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'mysite.settings'
from django.db import models
from testproject.models import Location
loc=Location.objects.get(name='Joes')

print loc.name

, но я получаюследующая ошибка:

Traceback (most recent call last):
  File "zz.py", line 6, in <module>
    from testproject.models import Location
ImportError: No module named testproject.models

Есть ли способ определить, правильно ли загружается файл settings.py?Или есть очевидная проблема синтаксиса?Должен ли PYTHONPATH отражать расположение моделей (в настоящее время это не так, если печатается os.environ)?

thx

Ответы [ 3 ]

6 голосов
/ 27 мая 2011

Django поддерживает создание пользовательских команд django-admin ( документация ).

Очень полезно для создания сценариев командной строки, которые обращаются к модели.

2 голосов
/ 27 мая 2011
  1. Убедитесь, что вы добавили папку, содержащую папку testproject, в sys.path. Например, если у вас следующая структура /foo/bar/testproject/models.py, вы должны добавить /foo/bar к sys.path
  2. Убедитесь, что в папке testproject есть файл __init__.py (который может быть пустым).
1 голос
/ 27 мая 2011

Если бы он не загружал ваши настройки правильно, то from django.db import models не удалось бы. Как таковой, ваш testproject пакет не найден; добавьте каталог, содержащий testproject/, в sys.path.

...