为什么{{user.groups}}总是显示auth.Group.None

时间:2019-01-15 11:05:34

标签: python django

当我在模板中使用{{ user.groups }}时,即使用户已登录并且属于组的一部分,我也总是得到auth.Group.None

我可以使用request.user.groups.all()从代码中访问组,但是我的模板中需要一个“始终有效”的版本。

1 个答案:

答案 0 :(得分:2)

这正是您所问的。

在Django上,用户和组之间的连接为Many2Many。因此,如果要访问用户上的组,则必须使用

User.groups.all()

User.groups.filter()
User.groups.get()

因此您可以认识到,如果要按用户访问组,则需要先执行一个查询集。

如果要打印该用户的每组,则应使用

{% for group in user.groups.all %}
    {{ group }}
{% endfor %}

如果只需要显示特定的组,则应创建一个单独的函数,仅使用Django模板就无法做到这一点。