我正在尝试将我的 Django 应用程序连接到 SQL Server 2016。我尝试使用 django-pyodbc,但它不支持 Django 1.11。相反,我安装了 django-mssql 1.8。当我尝试运行该应用程序时出现此错误。
TypeError was unhandled by user code
Message: 'NoneType' object is not callable
在 execute_from_command_line(sys.argv)
在 manage.py 中。
这是来自 settings.py 的数据库:
DATABASES = {
'default': {
'ENGINE': 'sqlserver_ado',
'NAME': 'TEST2',
'HOST': 'PCNAME\SQLEXPRESS',
'USER': '',
'PASSWORD': '',
'OPTIONS' : {
'provider': 'SQLOLEDB',
'use_mars': True,
},
}
}
我已经尝试了默认提供程序和 SQLOLEDB 提供程序,但总是得到相同的错误。我也尝试过设置和不设置用户和密码,但错误仍然存在。我能够很好地连接到本地 MySQL 数据库。
我正在运行 Windows 10、Visual Studio 2015、SQL Server Express 2016
编辑:
这是 pip freeze
的输出:
appdirs==1.4.3
Django==1.11
django-mssql==1.8
mysqlclient==1.3.10
packaging==16.8
pyodbc==4.0.16
pyparsing==2.2.0
pytz==2017.2
six==1.10.0
这是我的 requirements.txt:
django==1.11
mysqlclient==1.3.10
django-mssql==1.8
原文由 user1424311 发布,翻译遵循 CC BY-SA 4.0 许可协议
如 django-mssql 文档 中所述,最新版本仅支持 Django 1.8,因此不适用于 Django 1.11。
您必须等到软件包支持更新版本的 django 才能升级。这就是将 Django 与不受支持的数据库后端一起使用时的问题,你依赖于第三方包维护,而这个似乎很难与 Django 保持同步。