防止 Django 重新创建默认权限
Posted
技术标签:
【中文标题】防止 Django 重新创建默认权限【英文标题】:Prevent Django from re-creating default permissions 【发布时间】:2018-02-14 07:41:22 【问题描述】:有没有办法可以删除 Django 默认创建的所有权限并阻止它再次创建它们?
目前我有一个运行 Permission.objects.all().delete()
的迁移,我还添加了 default_permissions = ()
到我所有模型的 Meta
类中,但是一旦我运行迁移,权限就会消失一秒钟,然后Django 重新创建它们(我知道这是一种真正的娱乐,因为每次运行迁移时每个权限的 ID 都会增加)。
那么,有没有办法完全禁用自动权限创建? 请注意,我说的是禁用创建,而不是隐藏权限(我已经知道该怎么做)。
【问题讨论】:
【参考方案1】:您是否考虑过创建一个具有post_migrate 信号的应用来执行此操作?
我了解所有 auth 应用程序的权限创建代码都是在调用其 post_migrate 函数时发生的。 见here和here
应该是default_permissions = ()
should prevent creating permissions 对于您在其 Meta 类中指定的模型,但是由于您不能在第三方或 django 安装的应用程序上执行此操作,因此您将拥有这些权限你的数据库,直到你的新清理 post_migrate 信号出现并清理它们。
希望有帮助
【讨论】:
以上是关于防止 Django 重新创建默认权限的主要内容,如果未能解决你的问题,请参考以下文章