DJANGO_SETTINGS_MODULE не импортирует мои классы моделей - PullRequest
2 голосов
/ 16 августа 2011

Я прочитал из различных постов, что вы можете использовать DJANGO_SETTINGS_MODULE = APPNAME.settings для импорта классов модели для работы со скриптами python в командной строке linux.Я попытался запустить:

DJANGO_SETTINGS_MODULE = dishtank.settings PYTHONPATH = $ HOME / pythonDirLocation python pythonScript.py

В моем скрипте python мне нужно импортировать некоторые классы из моего файла model.py в один измои приложения, чтобы я мог редактировать таблицы в моей базе данных.Чего мне не хватает для импорта всех моих настроек django для работы с моим скриптом?

Ответы [ 2 ]

8 голосов
/ 09 марта 2012

Решение setup_environ устарело , начиная с версии 1.4 , поэтому новое решение состоит в том, чтобы следовать указаниям официального документа .

По сути, вынеобходимо адаптировать код следующим образом:

#!/usr/bin/python
# Deprecated way:
# from django.core.management import setup_environ
# import settings
# setup_environ(settings)

import sys
import os

# If you find a solution that does not need the two paths, please comment!
sys.path.append('$path_to_root_of_project$')
sys.path.append('$path_to_root_of_project$/$project_name$')

os.environ['DJANGO_SETTINGS_MODULE'] = '$project_name$.settings'
from django.conf import settings

# Beginning of your script...

Обратите внимание, что лучшим решением может быть (если применимо) интеграция сценария в пользовательскую команду управления , например, ./manage.py my_command

1 голос
/ 16 августа 2011

DJANGO_SETTINGS_MODULE = APPNAME.settings должно быть PROJECT.settings. Я обычно избегаю такого подхода и предпочитаю использовать setup_environ в верхней части моего автономного скрипта.

from django.core.management import setup_environ
from yourproject import settings

setup_environ(settings)

from yourproject.app.models import YourModel
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...