阻止Django重新创建默认权限

时间:2017-09-05 23:27:12

标签: python django permissions django-1.10

有没有办法可以删除Django默认创建的所有权限,并阻止它再次创建它们?

目前我有一个运行Permission.objects.all().delete()的迁移,我还将default_permissions = ()添加到我所有模型的Meta类中,但是一旦我运行迁移,权限就会消失一秒钟,然后Django重新创建它们(我知道这是一个真正的娱乐,因为每次运行迁移时每个权限的ID都会增加。)

那么,有没有办法可以完全禁用自动权限创建? 请注意,我说的是禁用创建,而不是隐藏权限(我已经知道该怎么做)。

1 个答案:

答案 0 :(得分:0)

您是否考虑过创建一个有post_migrate信号的应用来执行此操作?

我了解创建代码的所有auth应用程序权限都在调用其post_migrate函数时发生。 请参阅herehere

对于您在Meta类中指定的模型,default_permissions = () should prevent creating permissions应该是这种情况,但是由于您无法在第三方或django安装的应用上执行此操作,因此#&# 39;在你的数据库中留下这些权限,直到你的新清理post_migrate信号出现并清理它们。

希望有所帮助