Django游标不插入/更新查询

时间:2014-03-25 13:04:50

标签: sql-server django

这是我的游标执行代码。

from django.db import connection       
cursor = connection.cursor()    
cursor.execute("Some insert/Update query")

Cursor执行成功,因为它将输出作为插入的ID返回。但它没有在数据库中显示插入的值。

我试图关闭连接但没有成功。

cursor.close()
Connection.close()

如果我尝试使用Connection.commit(),但它会出错。

Exception Type: TransactionManagementError
Exception Value: This code isn't under transaction management

我找到了一个惊人的行为。 如果我使用Connection.commit,那么它会给出错误,但它会成功插入行。 没有connection.com,它既不会给出错误,也不会在数据库中插入行。

我使用MS-SQL服务器作为后端连接使用sqlserver_ado。

2 个答案:

答案 0 :(得分:0)

经过大量的护目镜终于来到了这个解决方案。

在视图通话之前使用@transaction.commit_manually

有关详情:Commit_Manually

答案 1 :(得分:0)

你的django版本应该低于1.6

你应该手动提交它 使用

django.db.transaction.commit_unless_managed()

import django
if not django.get_version().startswith('1.6'):
    # when version=1.5 not auto-commit, commit here
    django.db.transaction.commit_unless_managed()