有没有办法可以删除Django默认创建的所有权限,并阻止它再次创建它们?
目前我有一个运行Permission.objects.all().delete()
的迁移,我还将default_permissions = ()
添加到我所有模型的Meta
类中,但是一旦我运行迁移,权限就会消失一秒钟,然后Django重新创建它们(我知道这是一个真正的娱乐,因为每次运行迁移时每个权限的ID都会增加。)
那么,有没有办法可以完全禁用自动权限创建? 请注意,我说的是禁用创建,而不是隐藏权限(我已经知道该怎么做)。
答案 0 :(得分:0)
您是否考虑过创建一个有post_migrate信号的应用来执行此操作?
我了解创建代码的所有auth应用程序权限都在调用其post_migrate函数时发生。 请参阅here和here
对于您在Meta类中指定的模型,default_permissions = ()
should prevent creating permissions应该是这种情况,但是由于您无法在第三方或django安装的应用上执行此操作,因此#&# 39;在你的数据库中留下这些权限,直到你的新清理post_migrate信号出现并清理它们。
希望有所帮助