我难住了。使用我的本地设置(python manage.py runserver)一切运行良好。通过我的生产设置(wsgiserver.CherryPyWSGIServer),'unicode' object has no attribute 'tzinfo'
当我的程序尝试将数据库中的 datetime2(7) 转换为 pytz 模块中的本地时间时,我得到了。使用 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()
本地使用 Django 的 runserver 命令运行
wsgi.py:
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "settings") from django.core.wsgi import get_wsgi_application application = get_wsgi_application()
我最初在本地遇到了同样的问题,但是使用显示的选项配置数据库解决了这个问题。
任何帮助都是极好的。