【发布时间】:2019-06-23 19:35:31
【问题描述】:
考虑以下 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:
>>> u[2].username
'testma'
【问题讨论】:
-
用户
testma是否活跃? -
你能确定
u[2].username是“testma”吗?
标签: python django authentication