Django:' unicode'对象没有属性' tzinfo'。仅限生产服务器

时间:2016-03-02 21:12:28

标签: django wsgi pytz datetime2 django-pyodbc-azure

我很难过。使用我的本地设置(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()
    

我最初在本地遇到了同样的问题,但是使用显示的选项配置数据库是固定的。

任何帮助都会很棒。

0 个答案:

没有答案