我试图使用django-pyodbc版本连接到外部SQL Server Express数据库:this github link,但是当我运行manage.py shell
来检查我是否可以执行来自ORM的命令时,我不断收到此错误与Django一起使用SQL Server后端
Traceback (most recent call last):
File "manage.py", line 10, in <module>
execute_from_command_line(sys.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 443, in execute_from_command_line
utility.execute()
File "/usr/local/lib/python2.7/site-packages/django/core/management/__init__.py", line 382, in execute
self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py", line 196, in run_from_argv
self.execute(*args, **options.__dict__)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py",line 232, in execute
output = self.handle(*args, **options)
File "/usr/local/lib/python2.7/site-packages/django/core/management/base.py",line 371, in handle
return self.handle_noargs(**options)
File "/usr/local/lib/python2.7/site-packages/django/core/management/commands/shell.py", line 45, in handle_noargs
from django.db.models.loading import get_models
File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 40, in <module>
backend = load_backend(connection.settings_dict['ENGINE'])
File "/usr/local/lib/python2.7/site-packages/django/db/__init__.py", line 34, in __getattr__
return getattr(connections[DEFAULT_DB_ALIAS], item)
File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 93, in __getitem__
conn = backend.DatabaseWrapper(db, alias)
File "/usr/local/lib/python2.7/site-packages/sql_server/pyodbc/base.py", line 133, in __init__
self.ops = DatabaseOperations(self)
File "/usr/local/lib/python2.7/site-packages/sql_server/pyodbc/operations.py", line 10, in __init__
super(DatabaseOperations, self).__init__()
TypeError: __init__() takes exactly 2 arguments (1 given)
我的settings.py有这样的:
DATABASES = {
'default': {
'ENGINE': 'sql_server.pyodbc',
'NAME': 'DBName',
'HOST': '192.168.29.1',
'USER': 'user',
'PASSWORD': 'pswd',
'PORT': 1433,
}
}
DATABASE_OPTIONS = {
'driver': '/usr/local/lib/libtdsodbc.so',
'dsn': 'FreeTDS',
'extra_params': "TDS_VERSION=8.0"
}
我茫然,什么我应该做的很彻底,所以所有的想法都欢迎。基本上我想要的是能够使用我已经制作的与SQL Server数据库接口的小型应用程序,同时能够使用普通的Django ORM命令替代pyodbc连接字符串(以及使用pyodbc的BTW,我可以连接到没有问题的SQL Server数据库)
我遇到这个完全相同的问题。 Django 1.5或1.6,使用avidal分叉的django-pyodbc repo连接到SQL Server 2008。获得完全相同的错误,你是。你解决了这个问题吗? – knite
@knite我实际上跳过了这个实现,因为SQL位在我的项目中并不是非常关键的 –