为什么 {{ 用户组 }} 总是显示身份验证.组.无



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

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

正是你刚才问的。

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

User.groups.all()

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

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

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

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

如果你只需要显示一个特定的组,你应该创建一个单独的函数,你不能只用 Django 模板来做到这一点。

最新更新