我正在尝试运行一个填充脚本,我把它从tango嫒with_Djangotutorial(https://github.com/leifos/tango_with_django/blob/master/tango_with_django_project/populate_rango.py)放在一起,但是我得到了下面的回溯,它似乎与django 1.7中所做的更改有关?如果有人能解释一下我做错了什么,我将不胜感激。
(test_env) C:\Users\WriteCode\test_env\epl>python populate_clubs.py
Traceback (most recent call last):
File "populate_clubs.py", line 4, in <module>
django.setup()
File "c:\Python27\lib\site-packages\django\__init__.py", line 20, in setup
configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)
File "c:\Python27\lib\site-packages\django\conf\__init__.py", line 46, in __ge
tattr__
self._setup(name)
File "c:\Python27\lib\site-packages\django\conf\__init__.py", line 40, in _set
up
% (desc, ENVIRONMENT_VARIABLE))
django.core.exceptions.ImproperlyConfigured: Requested setting LOGGING_CONFIG, b
ut settings are not configured. You must either define the environment variable
DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
(test_env) C:\Users\WriteCode\test_env\epl>
我的populate_clubs.py脚本
import os
import sys
import django
django.setup()
def add_club(name, nickname, manager, established, stadium, active=True):
c = clubs.objects.get_or_create(name=name, nickname=nickname, manager=manager, established=established, stadium=stadium, active=active)
return c
def populate():
add_club(name = "Aston Villa",
nickname = "Villans",
manager = "Tim Sherwood",
established = "1897",
stadium = "Villa Park"
)
# Print out what was added
for c in clubs.objects.all():
print "The following has been added to clubs:" + c
# Start execution
if __name__ == '__main__':
print "Starting club population script..."
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'epl.settings')
from teams.models import clubs
populate()
如果通过在终端中运行
python
来启动与Django的交互后遇到类似错误,则在适当的目录中运行python manage.py shell
可能会解决您的问题。可以在
django.setup()
行之前插入os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
。对
django.setup
的调用应该在设置DJANGO_SETTINGS_MODULE
环境变量之后进行。把它移到你的__main__
中,就在os.environ.setdefault
之后。相关问题 更多 >
编程相关推荐