考虑一下Django shell会话的以下输出:
>>> from django.contrib.auth.models import User, Group
>>> g=Group.objects.all()
>>> g
<QuerySet [<Group: Tester>, <Group: Testmanager>]>
>>> g[1].permissions.all()
<QuerySet [..., <Permission: testman | test plan step | Can add test plan step>, <Permis
sion: testman | test plan step | Can change test plan step>, <Permission: testman | test plan step |
Can delete test plan step>, <Permission: testman | test plan step | Can view test plan step>, ...]>
>>> g[1].user_set.all()
<QuerySet [<User: somedude>, <User: testma>]>
>>> u=User.objects.all()
>>> u
<QuerySet [<User: somedude>, <User: test>, <User: testma>]>
>>> u[0].has_perm('testman.create_testplanstep')
True
>>> u[2].has_perm('testman.create_testplanstep')
False
我定义了两个组,Tester和Testmanager。用户somedude是站点管理员,也是Testmanager组的成员。用户testma不是站点管理员,而是Testmanager中的用户。组Testmanager拥有模型TestPlanStep的所有权限。但是用户testma没有获得权限。我做错什么了?在
编辑:用户testma处于活动状态。在
编辑2:
^{pr2}$
我想出来了。自动添加到模型中的权限称为“创建…”,但在管理站点中添加的权限称为“添加…”。所以
不过,很奇怪。对我来说有不同的名字是没有意义的。在
请尝试此操作以确保权限名称的构造正确:
输出应为0缺少权限。在
附录: 超级用户拥有特定权限这一事实并不能证明该权限是有效的。例如,您可以尝试以下操作:
^{pr2}$相关问题 更多 >
编程相关推荐