Python Django can';无法清除Oracle后端上的数据库缓存

Python Django can';无法清除Oracle后端上的数据库缓存,python,django,oracle,cx-oracle,django-cache,Python,Django,Oracle,Cx Oracle,Django Cache,我的oracle缓存表中有一行。我试图用标准的django方式清除它: from django.core.cache import cache cache.clear() 但它不起作用!该行仍在我的缓存表中 因此,我运行了python manage.py sell,并从DatabaseCache.clear()方法中放入了一些代码: from django.db import connections table = connections['cache'].ops.quote_name('ws

我的oracle缓存表中有一行。我试图用标准的django方式清除它:

from django.core.cache import cache
cache.clear()
但它不起作用!该行仍在我的缓存表中

因此,我运行了
python manage.py sell
,并从
DatabaseCache.clear()
方法中放入了一些代码:

from django.db import connections
table = connections['cache'].ops.quote_name('ws_cache_table')
cursor = connections['cache'].cursor()
cursor.execute('DELETE FROM %s' % table)
但它也不起作用

我没有引发任何异常,我的“缓存”连接在
settings.py中配置正确

当我打开SQL Developer并将

DELETE FROM ws_cache_table
表被正确截断

另一方面,当我添加:

connections['cache'].commit()
我得到异常
django.db.transaction.TransactionManagementError:此代码未在事务管理下抛出,但表现在被截断

问题是:我应该怎么做才能使我的表被截断,但不引发异常

这是django
DatabaseCache.clear()方法中的错误吗


我正在使用django 1.4。

您是否有
django调试工具栏
?也许您可以运行
/manage.py debugsqlshell
并运行相同的命令来查看SQL输出。毫不奇怪,输出是“从ws_缓存中删除”;)好的,这是意料之中的。尝试使用
commit\u,除非\u managed()
而不是
commit()
。(仅根据您的例外情况进行猜测)