当我在模板中使用{{ user.groups }}
时,即使用户已登录并且属于组的一部分,我也总是得到auth.Group.None
。
我可以使用request.user.groups.all()
从代码中访问组,但是我的模板中需要一个“始终有效”的版本。
答案 0 :(得分:2)
这正是您所问的。
在Django上,用户和组之间的连接为Many2Many。因此,如果要访问用户上的组,则必须使用
User.groups.all()
或
User.groups.filter()
User.groups.get()
因此您可以认识到,如果要按用户访问组,则需要先执行一个查询集。
如果要打印该用户的每组,则应使用
{% for group in user.groups.all %}
{{ group }}
{% endfor %}
如果只需要显示特定的组,则应创建一个单独的函数,仅使用Django模板就无法做到这一点。