繁体   English   中英

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

[英]Django: How to manage groups and permission without using default admin

我正在按照需要管理自定义模板中的用户,组和权限的要求来进行Django项目。 因此,我没有使用默认的管理控制台。

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

我尚未覆盖或自定义任何auth Model 但是将来我需要自定义User Model例如一些其他字段等。

我想到的第一件事是从auth_permission表中删除所有权限,并添加我的自定义权限。

因此,我必须执行以下操作:

  1. 创建组
  2. 权限清单
  3. 为每个组分配权限
  4. 为每个用户分配组或权限

我对这些事情有些担心。

  • 如果我删除了所有权限,那么可以进行项目吗?

  • 用于验证权限的Django函数(例如has_perm)会起作用吗?

  • 我可以为此做些其他事情吗?

需要一些健康提示。

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

谢谢

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

如果您尝试摆脱现有权限,django可能只是重新创建它们,否则在创建新模型时可能会遇到麻烦。 我不确定何时创建/重新创建的详细信息,但是django对您创建的每个模型都具有默认权限

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

只要您通过以编程方式创建权限或通过将“ 自定义权限”放置在模型的Meta类中来创建权限 ,您就应该能够像使用其他任何权限一样使用它们。 具体来说,我的意思是您应该可以使用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]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM