我通过在Django模型中使用'meta'来添加自定义权限。看下面的一个简单的例子。Django元权限
Models.py
class Meta:
permissions = (
("can_do_stuff", "Can do stuff"),
)
这个伟大的工程,我上面的代码添加到模型,然后让我的迁移,然后将其迁移。权限被创建并可供使用。
但是,当我从我的模型的'meta'部分删除(或修改)该权限并再次从Django系统删除权限(已删除/修改)makemigrations
,migrate
。
这不会是一个问题,如果我已经想出了我的权限系统100%,但我一直在进行微调,因为我学习的结果是权限列表与'传统'权限混乱。
我正在开发和发布新版本,以便频繁使用,并且权限在生产中越来越混乱,我不能像在开发中那样擦除数据库。
有没有推荐的方法呢?
我可以直接从数据库手动删除旧的权限(它似乎只是一个条目,我需要删除,它似乎不会导致任何问题)。这似乎是一个糟糕的做法,容易出错,被遗忘等。
您是否尝试过对模型进行其他修改以确保创建了新迁移,并检查了此处未删除权限?编辑:我发现了一个[关闭的问题](https://code.djangoproject.com/ticket/23256),看起来它已被修复。 – guival