2010-04-28 56 views
1

做了我的項目的dumpdata,然後在我的新測試中,我將它添加到燈具。Django:文本夾具無法加載

from django.test import TestCase 

class TestGoal(TestCase): 
    fixtures = ['test_data.json'] 

    def test_goal(self): 
     """ 
     Tests that 1 + 1 always equals 2. 
     """ 
     self.failUnlessEqual(1 + 1, 2) 

運行測試時,我得到:

問題安裝夾具 'XXX /燈具/ test_data.json':

DoesNotExist:XXX匹配查詢並 不存在。

但手工做loaddata 工作正常 不當db是空的。 我做了一個dropdb,創建了一個簡單的syncdb try loaddata,它失敗了,同樣的錯誤。

任何線索?

Python版本2.6.5,Django 1.1.1

+0

是在fixtures /目錄下可用的test_data.json? test_data.json如何看起來像? – 2010-04-29 00:17:10

+0

在那裏可用,看起來像來自manage.py dumpdata命令的數據 – 2010-04-29 11:23:12

回答

4

也許你有一些外鍵的麻煩。如果您的模型包含指向另一個模型的外鍵,但其他模型不存在,則會出現此錯誤。

這可能是由於以下幾個原因造成的:如果您指向另一個應用程序中未包含在test_data.json轉儲中的模型,則會遇到問題。另外,如果外鍵改變,這可能會破壞序列化 - 這對於自動創建的字段如permissionsgeneric relations尤其有問題。 Django 1.2支持natural keys,這是一種使用模型的「自然」表示作爲外鍵而不是可能改變的ID序列化的方式。

+0

是的,問題... FK ... – 2010-05-03 00:19:56