2010-04-28 58 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