gpt4 book ai didi

python - Django:如何在不使用默认管理员的情况下管理组和权限

转载 作者:行者123 更新时间:2023-12-01 04:38:53 24 4
gpt4 key购买 nike

我正在开发 Django 项目,根据需要在自定义模板中管理用户、组和权限。所以我没有使用默认的管理仪表板。

我已经完成了用户创建模块,现在我想为用户分配权限和组。

我还没有覆盖或自定义任何auth Model。但将来我需要自定义用户模型,例如一些附加字段等。

我首先想到的是从 auth_permission 表中删除所有权限并添加我的自定义权限。

所以我必须做以下事情:

  1. 创建群组
  2. 权限列表
  3. 为每个组分配权限
  4. 为每个用户分配组或权限

我对这些事情有些担忧。

  • 如果我删除了所有权限,项目还可以吗?

  • 用于验证权限的 Django 函数(例如 has_perm)可以工作吗?

  • 我可以为此做一些不同的事情吗?

需要一些健康提示。

更新:我只想向管理员显示我的自定义权限,例如 perm1、perm2。目前还有其他很多权限。

谢谢

最佳答案

“如果我删除了所有权限,项目可以吗?”

如果您尝试删除现有权限,django 可能会重新创建它们,或者您在创建新模型时可能会遇到麻烦。我不确定何时创建/重新创建的详细信息,但 django 有 default permissions对于您创建的每个模型。

“用于验证权限的 Django 函数(例如 has_perm)可以工作吗?”

只要您通过 Programmatically creating permissions 创建权限即可或者输入 Custom Permissions在模型的元类中,您应该能够像使用任何其他权限一样使用它们。具体来说,我的意思是您应该能够使用 user.has_permpermission_required装饰器。

“我可以为此做一些不同的事情吗?”

如果您只想显示 user.user_permissions 之类的某些权限,我建议您过滤获得的结果,而不是尝试删除现有权限。像下面这样的东西是合适的:

filter_show_permissions = ["perm_a", "perm_b", ...]
filtered_permissions = [perm for perm in user.user_permissions
if perm in filter_show_permissions]

关于python - Django:如何在不使用默认管理员的情况下管理组和权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31187629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com