在编写测试用例时,我需要装备,或者我们可以说json数据来预先填充数据库.我有一个项目,这是使用Django组和权限模型.
现在,当我对转储数据使用命令python manage.py dumpdata auth.Groups > fixtures/groups.json
时,它将转储groups.json文件中的所有数据,如下所示.
当一个特定的注册表被触发时,它将创建特定的组,并在该组中添加相关的相关权限,我已经在代码中定义了这一点.但如果已经创建了组,则不会try 再次创建它,只需将该组分配给用户即可.
在这里,根据其ID列出了权限.
Note:某些权限是默认权限,其他权限是模型中定义的自定义权限.
现在,我重新创建数据库.然后,迁移到python manage.py migrate
并创建了一些用户,以便动态创建组,并将权限分配给我上面提到的组.然后,再次使用DUMP DATA命令,这次的ID是不同的.此外,当我在Django管理面板中验证组中的权限时,它显示分配给组的权限不同于I code的权限.
由此,我假设每当我重新创建数据库并调用Migrate命令时,它都会创建所有权限,但并不总是以相同的方式.因此,每次重新创建数据库时,单个权限对象可以具有不同ID.
我曾try 编辑groups.json文件以将ID更改为它们的代码名,但它显示的错误是列表必须包含int.
Question:我们有没有可能用权限代号来代替id,这样每个组都会有预期的权限,而不管他们的id是什么.另外,在加载数据时,特定的组只会根据他们的代号将权限分配给特定的组.这可能吗?