我的Django的V1.6.2運行單元測試,並收到此錯誤:Django的單元測試:不能做查詢子查詢在不同DB
ValueError: Can't do subqueries with queries on different DBs.
運行網站但沒有發生。
我只有一個指定的數據庫。
在谷歌上進行了一次快速搜索,結果發現只有一個相關結果,並沒有幫助我。
更新的更多細節:
這是管理M2M關係的中間模式,這就是導致問題的查詢:
ProductCategory.objects.filter(category=category, product=product).delete()
更新:加入微量
======================================================================
ERROR [0.079s]: test_sync (goproducts.apps.products.tests.productSyncTestCase)
----------------------------------------------------------------------
Traceback (most recent call last):
File "/private/var/www/goproducts/goproducts/goproducts/apps/products/tests.py", line 55, in test_sync
product.objects.sync(self.message)
File "/private/var/www/goproducts/goproducts/goproducts/apps/products/managers.py", line 97, in sync
ProductCategory.objects.filter(category=category, product=product).delete()
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/query.py", line 464, in delete
collector.collect(del_query)
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/deletion.py", line 166, in collect
reverse_dependency=reverse_dependency)
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/deletion.py", line 77, in add
if not objs:
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/query.py", line 100, in __nonzero__
self._fetch_all()
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/query.py", line 854, in _fetch_all
self._result_cache = list(self.iterator())
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/query.py", line 220, in iterator
for row in compiler.results_iter():
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 709, in results_iter
for rows in self.execute_sql(MULTI):
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 772, in execute_sql
sql, params = self.as_sql()
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 94, in as_sql
having, h_params = self.query.having.as_sql(qn=qn, connection=self.connection)
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/sql/where.py", line 103, in as_sql
sql, params = child.as_sql(qn=qn, connection=connection)
File "/private/var/www/goproducts/lib/python2.7/site-packages/django/db/models/sql/where.py", line 401, in as_sql
raise ValueError("Can't do subqueries with queries on different DBs.")
ValueError: Can't do subqueries with queries on different DBs.
----------------------------------------------------------------------
你可以添加更多的細節?查詢和模型 – Anup
好吧,需要知道什麼是類別和產品?在引擎蓋下它們被轉換爲pk,因此請確保類別和產品是ID。並且還更新跟蹤,以及全視圖功能可能!!!! – Anup
我相信我提供的信息就夠了,導致錯誤的聲明不是子查詢。 –