【发布时间】:2020-05-17 11:01:21
【问题描述】:
我正在使用 django 2.0 应用程序并将 django 版本更新到 3.0。 但在我的项目中,很少有像 view_modelname 这样的自定义权限。
class MyConcreteModel(models.Model):
model_field_1 = models.CharField(max_length=100, blank=False)
# other fields
class Meta:
permissions = (
("view_myconcretemodel", "Can see available device interfaces"),
)
在 django 3(自 v 2.1 起)中,这种权限是默认的。所以我与权限名称发生冲突。
现在我正在尝试在更新 django 版本之前重命名自定义权限。
class MyConcreteModel(models.Model):
model_field_1 = models.CharField(max_length=100, blank=False)
# other fields
class Meta:
permissions = (
("user_view_myconcretemodel", "User can see available device interfaces"),
)
迁移后,在数据库中创建了“新”(使用新名称)权限。但是旧权限仍然存在,并且所有用户都有旧权限(使用旧名称,例如 view_myconcretemodel)。显然,我需要所有用户的“新”权限。
是否有可能简单地重命名权限或向相关用户授予“新”权限(根据“旧”权限),并自动执行?
【问题讨论】:
标签: django django-models django-migrations django-permissions