一,编程实现。例
为 BlogPost
模型创建 can_publish
权限。
from myapp.models import BlogPost
from django.contrib.auth.models import Permission
from django.contrib.contenttypes.models import ContentType
content_type = ContentType.objects.get_for_model(BlogPost)
permission = Permission.objects.create(
codename='can_publish',
name='Can Publish Posts',
content_type=content_type,
)
然后,可以通过 user_permissions
属性将权限分配给 User
,或通过 permissions
属性分配给 Group
。
二,在模型的 Meta
类中定义 custom permissions,例
Task 模型创建了两个用户自定权限,即:
class Task(models.Model):
...
class Meta:
permissions = (
("change_task_status", "Can change the status of tasks"),
("close_task", "Can remove a task by setting its status as closed"),
)