我正在尝试从我过滤的用户中列出一个列表,
User.objects.filter(groups__name='Staff')
我想要类似的输出
list_of_usernames = [adam,joe,natalie]
在列表中必须是用户的用户名。可以帮我写这个查询吗?我尝试了一些to_list,但对我来说却没有用。
您可以在此处使用.values_list(..)
[Django-doc]:
list_of_usernames = list(
User.objects.filter(groups__name='Staff').values_list('username',flat=True)
)
但是实际上,通常最好先获取模型对象并获取属性,以免“绕过”模型中的逻辑:
from operator import attrgetter
list_of_usernames = list(map(
attrgetter('username'),User.objects.filter(groups__name='Staff')
))
,
如果您不需要用户提供任何其他属性供以后使用,请执行以下操作:
list_of_usernames = [u.username for u in User.objects.filter(groups__name='Staff')]