阻止Django重新创建默认权限
问题描述:
有没有办法让我删除Django默认创建的所有权限并阻止它再次创建它们?阻止Django重新创建默认权限
目前,我有一个运行Permission.objects.all().delete()
,我也开始加入default_permissions =()
到Meta
类我所有的车型,和尚未迁移,一旦我运行迁移,权限消失了一秒钟,然后Django的重新创建它们(我知道这是一种真正的娱乐,因为每次运行迁移时每个权限的ID都会增加)。
那么,有没有办法可以完全禁用自动权限创建? 请注意,我是说禁用创建,而不是隐藏权限(我已经知道该怎么做)。
答
您是否研究过创建一个具有post_migrate信号的应用程序?
据我所知,当它调用post_migrate函数时,所有auth应用程序的权限创建代码都会发生。 见here和here
应该是default_permissions =()
should prevent creating permissions为你指定在其元类,但是因为你不能这样做第三方或Django的安装应用程序的模型,你留下了这些情况你的数据库的权限,直到你的新清理post_migrate信号出现并清理它们。
希望可以帮到