Django:文本夹具无法加载

时间:2010-04-28 23:18:42

标签: django testing fixtures

我的项目的dumpdata,然后在我的新测试中,我将它添加到灯具中。

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匹配查询   不存在。

但是当db为空时,手动执行loaddata 工作正常不会。 我做了一个dropdb,创建了一个简单的syncdb try loaddata并且它失败了,同样的错误。

有任何线索吗?

Python 2.6.5版,Django 1.1.1

1 个答案:

答案 0 :(得分:4)

也许你有一些外键问题。如果您的模型包含引用另一个模型的外键但另一个模型不存在,则会出现此错误。

这可能是由于以下几个原因造成的:如果您指向另一个未包含在test_data.json转储中的应用中的模型,则会遇到问题。

此外,如果外键更改,这可能会破坏序列化 - 对于自动创建的字段permissionsgeneric relations,这尤其成问题。 Django 1.2支持natural keys,这是一种使用模型的“自然”表示作为外键进行序列化的方法,而不是可能更改的ID。