Django 测试加载固定装置 auth.group
Django tests loading fixtures auth.group
当我 运行 django 测试时出现错误:
IntegrityError: Problem installing fixture ... ContentType matching
query does not exist.: (auth.group:pk=2) field_value was
'[u'add_corsmodel', u'corsheaders', u'corsmodel']'
我通过
获得固定装置
python manage.py dumpdata --natural-foreign --exclude=contenttypes --exclude=auth.Permission
我该如何解决这个问题?我应该排除其他一些 table 吗?
好吧,我尝试做一件简单的事情来添加权限。
我创建了一个 .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>
我认为在你的情况下它无法在 table 中找到行或列,这就是它显示 IntegrityError
的原因
从您的设备中删除组可以解决您的问题
因为 Group 依赖于 Permission which depends on ContentType,它们都从导出中删除。
从您对这个问题的评论来看,您似乎已经弄清楚了那部分。不过,您的问题还有另一个答案:Don't use fixtures for test data in Django。 Django 的文档建议您使用 TestCase.setUpTestData
方法来设置您的测试数据。这是文档中的内容:"Tests are more readable and it’s more maintainable to create objects using the ORM."
当我 运行 django 测试时出现错误:
IntegrityError: Problem installing fixture ... ContentType matching query does not exist.: (auth.group:pk=2) field_value was '[u'add_corsmodel', u'corsheaders', u'corsmodel']'
我通过
获得固定装置python manage.py dumpdata --natural-foreign --exclude=contenttypes --exclude=auth.Permission
我该如何解决这个问题?我应该排除其他一些 table 吗?
好吧,我尝试做一件简单的事情来添加权限。 我创建了一个 .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>
我认为在你的情况下它无法在 table 中找到行或列,这就是它显示 IntegrityError
的原因从您的设备中删除组可以解决您的问题 因为 Group 依赖于 Permission which depends on ContentType,它们都从导出中删除。
从您对这个问题的评论来看,您似乎已经弄清楚了那部分。不过,您的问题还有另一个答案:Don't use fixtures for test data in Django。 Django 的文档建议您使用 TestCase.setUpTestData
方法来设置您的测试数据。这是文档中的内容:"Tests are more readable and it’s more maintainable to create objects using the ORM."