我部署在Windows Azure上我的Django项目。 我使用SQLite作为数据库服务器,一切都OK。 当我已经部署了我的项目,我决定把它与SQL Azure数据库连接,但似乎这种解决方案产生了一些错误。 我不再能够编辑的用户配置文件。 我总是得到这样的错误:
AttributeError at /admin/auth/user/1/ 'unicode' object has no attribute 'tzinfo'
我部署在Windows Azure上我的Django项目。 我使用SQLite作为数据库服务器,一切都OK。 当我已经部署了我的项目,我决定把它与SQL Azure数据库连接,但似乎这种解决方案产生了一些错误。 我不再能够编辑的用户配置文件。 我总是得到这样的错误:
AttributeError at /admin/auth/user/1/ 'unicode' object has no attribute 'tzinfo'
我试图用同样的问题, django-pyodbc-azure
的后台数据库和Django(1.5.1):默认情况下,它存储DateTimeField
在你的数据库字段datetime2(7)
这看起来是仍然在Django不支持的。 在我的情况下,我加入了选项'use_legacy_datetime' : True
的settings.py
,象下面这样:
DATABASES = {
'default': {
'ENGINE' : 'sql_server.pyodbc',
'NAME' : '<MYDBNAME>',
'USER': '<MYDBUSER>',
'PASSWORD': '<MYDBPWD>',
'HOST': '<MYHOST>',
'OPTIONS': {
'use_mars': True,
'use_legacy_datetime' : True, # I added this line
},
},
}
我发现我的解决方案在这里 。 我不知道Azure平台很好,所以我不知道这正是你的情况,如果没有你仍然可以修改数据库替换datetime2(N)
具有良好的老油田datetime
的。
希望能帮助到你。
当你的数据库中包含这样的日期,时间标记会发生此错误:
0000-00-00 00:00:00.000000
(这可以在MySQL的发生,如果你删除或覆盖以前的日期与MySQLWorkbench)
当您尝试检索在Django模型对象这些记录,你会得到从一个异常pytz时区库:
AttributeError 'unicode' object has no attribute 'tzinfo'
你应该先编辑您的数据库中的这些日期,并将它们设置为最近的日期,如2018-01-01 00:00:00.000000
或设置为NULL
(而不是空白)。
看到:
也可以看看: