我很难过。使用我的本地设置(python manage.py runserver)一切正常。我的生产设置(wsgiserver.CherryPyWSGIServer),当我的程序试图将datetime2(7)从数据库转换为pytz模块中的本地时间时,我得到'unicode' object has no attribute 'tzinfo'
。使用Django 1.9。
两个设置都使用django-pyodbc-azure连接到同一个mssql数据库。实际上,为了解决这个问题,两者都使用相同的设置文件。
# settings.py
...
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'dbname',
'OPTIONS': {
'use_mars': True,
'use_legacy_datetime': True,
'driver': 'SQL Server Native Client 11.0'
}
}
}
...
# Relevant to runserver command:
WSGI_APPLICATION = 'wsgi.application'
通过运行此文件来运行生产:
# deploy_server.py
from . import wsgi
sn = socket.gethostname()
server = wsgiserver.CherryPyWSGIServer(
('0.0.0.0', 8009), wsgi.application, server_name=sn,
)
server.start()
使用Djangos runserver命令运行本地
wsgi.py:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings")
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
我最初在本地遇到了同样的问题,但是使用显示的选项配置数据库是固定的。
任何帮助都会很棒。