通过Django中的属性/外键访问用户组

时间:2016-09-23 07:27:25

标签: python django

我正在尝试访问Django中的用户组,但不断获取

auth.Group.None

结果。

在django shell中,我将首先创建一个组,然后是用户并将用户添加到该组。在此之后,我尝试打印用户组,如下所示:

from django.contrib.auth.models import User, Group

Artists = Group.objects.create(name="Artists")
Artists.save()
Rihanna = User.objects.create_user(username="Rihanna", password="newpassword")
Rihanna.save()
Artists.user_set.add(Rihanna)
# Save both of them again just to double check
Rihanna.save()
Artists.save()

# Now try to access Rihanna's groups through her attributes:
print Rihanna.groups, Rihanna.groups.name

,结果是

>>> auth.Group.None None

我想要发生的是打印群组名称。

我知道我可以通过filter和get命令查询组的成员,但我想直接通过用户属性/外键访问组。知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

您已将用户添加到组对象中的组,但您的用户对象没有此更新状态。

尝试这样的访问组:

print Rihanna.groups.all()

或在用户模型中添加组:

Rihanna.groups.add(Artists)