如何在自定义仪表板中显示 django 角色和权限

Posted

技术标签:

【中文标题】如何在自定义仪表板中显示 django 角色和权限【英文标题】:How to display django roles and permissions in a custom dashboard 【发布时间】:2021-11-18 09:15:47 【问题描述】:

我试图在我的自定义管理仪表板(不是 django 管理员)中拥有角色、组和权限,以便分配角色、组和权限。权限的 django 管理页面如下图所示。我想在我的模板中拥有完全相同的权限。

在其他框架(如 laravel)中,他们使用 Spatie 包完美地完成了它。在 Django 中是否也有类似的包,或者我必须自己编写每一个逻辑。或者更好的是,我可以查询 Django-admin 权限和组并将它们显示在我的自定义管理仪表板模板中。

【问题讨论】:

【参考方案1】:

可以导入Django权限和组模型:

from django.contrib.auth.models import Permission, Group

它们和其他任何模型一样都是普通模型,因此您可以查询它们:

Permission.objects.all()

您还可以创建其他权限:

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,
)

您需要做的就是为列出、添加和您可能需要的任何其他要求创建端点。

更多关于 Django 文档:Programmatically creating permissions

【讨论】:

太棒了。这对我来说是一个好的开始。此外,您能否添加任何资源或教程来指导我实现完整的角色权限仪表板?我有点卡住了怎么做 我认为您找不到很多针对此特定用例的教程。这只是您必须创建的另一个 API。看看 DRF:django-rest-framework.org 非常感谢您的帮助

以上是关于如何在自定义仪表板中显示 django 角色和权限的主要内容,如果未能解决你的问题,请参考以下文章

验证操作过滤器或授权过滤器的用户权限?

在自定义 Django 表单中验证和显示错误

如何在自定义模板中使用 Django 的管理员布尔图标?

按用户角色和 id 过滤的 Django 自定义权限

在自定义管理页面中显示正确的 django 身份验证框架信息

根据用户角色获取登录用户的django权限以显示/隐藏菜单