当我运行django测试时,我收到错误:
IntegrityError:安装夹具时出现问题... ContentType匹配 查询不存在:(auth.group:pk = 2)field_value是 ' [u' add_corsmodel',u' corsheaders',u' corsmodel']'
我通过
来获得灯具 python manage.py dumpdata --natural-foreign --exclude=contenttypes --exclude=auth.Permission
我该如何解决这个问题?我应该排除其他一些表吗?
答案 0 :(得分:0)
遇到同样的问题。不能用jango的标准方法来解决它。尝试使用django-fixture-magic app。
答案 1 :(得分:0)
我尝试做一件简单的事情来添加权限。 我创建了一个.json文件并输入了数据。
[
{
"model": "auth.group",
"fields": {
"name": "foo",
"permissions": [
29,45,46,47,48 //permission ID's created in auth.group
]
}
},
{
"model": "auth.group",
"fields": {
"name": "new_grp",
"permissions": [
29,45,46,47,48
]
}
}
]
这是我想要包含的初始权限,然后是
manage.py loaddata <myJsonFIle>
我认为在您的情况下,它无法在表格中找到显示IntegrityError
的行或列的原因。答案 2 :(得分:0)
从夹具中删除组可以解决您的问题 因为群组取决于Permission,ContentType取决于"Tests are more readable and it’s more maintainable to create objects using the ORM.",这两个都从导出中删除。
从你对这个问题的评论来看,听起来你已经想到了这个问题。不过你的问题还有另一个答案:不要在Django中使用灯具来测试数据。 Django的文档建议您使用TestCase.setUpTestData
方法设置测试数据。以下是文档中的动作:{{3}}