【发布时间】:2016-11-18 09:43:46
【问题描述】:
默认情况下,每个 django 模型都有 3 个权限(添加、更改、删除)。在模型中,我可以定义我的自定义权限以添加更多内容。
class Company(models.Model):
owner = models.ForeignKey(User)
name = models.CharField(max_length=64, unique=True)
description = models.TextField(max_length=512)
created_on = models.DateTimeField(auto_now_add=timezone.now)
class Meta:
permissions = (
("erp_view_company", "Can see the company information"),
("erp_edit_company", "Can edit the company information"),
("erp_delete_company", "Can delete the company"),
)
迁移时,这些权限会在数据库级别自动创建。如何从模型中检索所有权限?
# retrieves the permissions
permissions = Permission.objects.filter(get_all_permissions_of_model_Company)
# adds permissions to group
group = Group.objects.create(name='foo', permissions=permissions)
# adds user to group
user.groups.add(group)
【问题讨论】:
-
请注意,从 Django 2.1 开始,each Model has 4 default permissions。
view_model已添加。
标签: python django django-models permissions