【问题标题】:How to create a group with some permissions如何创建具有某些权限的组
【发布时间】:2021-06-18 19:26:49
【问题描述】:

我正在使用 Django / Rest Framework 开发一个小项目 我想添加权限和组。我找不到任何好的教程,我在谷歌上做了一些研究,在这里我找到了答案:

from django.contrib.auth.models import Group, Permission
from django.contrib.contenttypes.models import ContentType
from api.models import Project
new_group, created = Group.objects.get_or_create(name='new_group')
# Code to add permission to group ???
ct = ContentType.objects.get_for_model(Project)

# Now what - Say I want to add 'Can add project' permission to new_group?
permission = Permission.objects.create(codename='can_add_project',
                                   name='Can add project',
                                   content_type=ct)
new_group.permissions.add(permission)

但在这里我看不到任何关于授予用户添加、编辑、删除或查看权限的逻辑。

我应该只需要这段代码来获得权限(例如编辑)还是我应该添加一些其他代码?

谢谢

【问题讨论】:

  • 嗨,Ruth,您是否尝试过使用 Django Admin 作为初学者?首先在那里设置权限会更容易。这也是一种运行和测试使用组权限的代码的简单方法。
  • 是的,我想以编程方式做到这一点

标签: python django


【解决方案1】:

代码逻辑:

您是对的,没有关于授予用户权限的逻辑,您提供的代码显示了如何创建组和添加组权限。准确地说(1)创建了组“new_group”,(2)然后创建了一个权限“can_add_project”,最后(3)将新创建的权限分配给了“new_group”。

我应该只需要这段代码来获得权限(例如编辑)还是我应该添加一些其他代码?

如果您需要执行与上述代码完全相同的操作,那么显然您可以重复使用它。否则,您需要调整代码以使其符合您的目标。

:)

【讨论】:

  • 添加权限后我应该做什么,我应该在哪里检查权限,还有一些叫做 Django 模型权限(默认权限)的东西我如何以编程方式管理它们
猜你喜欢
  • 2021-11-06
  • 1970-01-01
  • 2020-09-29
  • 2013-10-30
  • 2010-10-08
  • 2010-11-17
  • 2021-09-04
  • 2015-04-14
  • 2020-07-07
相关资源
最近更新 更多