2012-04-13 5 views
1

これはMicrosoft SQL Server 2005にあります。 Python 2.7。 Django 1.4Django-mssqlでsyncdbを実行しているときSQLInsertCompilerエラー

Django-MSSQLがインストールされ、データベースに接続しています。

テーブルを読み取ることはできますが、テーブルの挿入や更新はできません。私は(も報告されている)このerror messageを得ると呼ばれている)を保存(後

# Save the object into the database. You have to call save() explicitly. 
>>> p.save() 

:私はこのポイントを取得空のデータベース上でDjangoのチュートリアルを作業する

Creating tables ... 
Traceback (most recent call last): 
File "manage.py", line 11, in <module> 
execute_manager(settings) 
File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 459, in execute_manager 
utility.execute() 
File "C:\Python26\lib\site-packages\django\core\management\__init__.py", line 382, in execute 
self.fetch_command(subcommand).run_from_argv(self.argv) 
File "C:\Python26\lib\site-packages\django\core\management\base.py", line 196, in run_from_argv 
self.execute(*args, **options.__dict__) 
File "C:\Python26\lib\site-packages\django\core\management\base.py", line 232, in execute 
output = self.handle(*args, **options) 
File "C:\Python26\lib\site-packages\django\core\management\base.py", line 371, in handle 
return self.handle_noargs(**options) 
File "C:\Python26\lib\site-packages\django\core\management\commands\syncdb.py", line 110, in handle_noargs 
emit_post_sync_signal(created_models, verbosity, interactive, db) 
File "C:\Python26\lib\site-packages\django\core\management\sql.py", line 189, in emit_post_sync_signal 
interactive=interactive, db=db) 
File "C:\Python26\lib\site-packages\django\dispatch\dispatcher.py", line 172, in send 
response = receiver(signal=self, sender=sender, **named) 
File "C:\Python26\lib\site-packages\django\contrib\auth\management\__init__.py", line 35, in create_permissions 
ctype = ContentType.objects.get_for_model(klass) 
File "C:\Python26\lib\site-packages\django\contrib\contenttypes\models.py", line 42, in get_for_model 
defaults = {'name': smart_unicode(opts.verbose_name_raw)}, 
File "C:\Python26\lib\site-packages\django\db\models\manager.py", line 134, in get_or_create 
return self.get_query_set().get_or_create(**kwargs) 
File "C:\Python26\lib\site-packages\django\db\models\query.py", line 449, in get_or_create 
obj.save(force_insert=True, using=self.db) 
File "C:\Python26\lib\site-packages\django\db\models\base.py", line 463, in save 
self.save_base(using=using, force_insert=force_insert, force_update=force_update) 
File "C:\Python26\lib\site-packages\django\db\models\base.py", line 551, in save_base 
result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) 
File "C:\Python26\lib\site-packages\django\db\models\manager.py", line 203, in _insert 
return insert_query(self.model, objs, fields, **kwargs) 
File "C:\Python26\lib\site-packages\django\db\models\query.py", line 1576, in insert_query 
return query.get_compiler(using=using).execute_sql(return_id) 
File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 909, in execute_sql 
for sql, params in self.as_sql(): 
File "C:\Python26\lib\site-packages\django_mssql-1.0.1-py2.6.egg\sqlserver_ado\compiler.py", line 207, in as_sql 
sql, params = super(SQLInsertCompiler, self).as_sql(*args, **kwargs) 
ValueError: need more than 1 value to unpack 

UPDATE:私はDjango 1.3にロールバックして、このエラーはなくなりました。私は、1.4でDjangoがユーザーと認証をどのように処理するかが変更されたと考えています。チャンスがあり、パッチを当てようとしたら、ソースを見てみましょう。 Djangoの1.4用

答えて

1

サポートは

pip install django-mssql>=1.1 
ジャンゴ - MSSQL V1.1で追加されました