我想从django中的查询中检索一个字段的所有值的列表.例如,我有一个用户查询,但不是用户对象的查询集(或列表),我想要一个列表只是用户名(字符串).从某种意义上说,这要求仅限制一列数据.
ako*_*ian 51
你有没有尝试过
User.objects.all().values_list('username', flat=True)
Run Code Online (Sandbox Code Playgroud)
如果只传入单个字段,则还可以传入flat参数.如果为True,则表示返回的结果是单个值,而不是一个元组.
要获取用户名列表:
>>> User.objects.all().values('username')
>>> [{'username': u'u1'}, {'username': u'u2'}]
>>> User.objects.all().values_list('username')
>>> [(u'u1',), (u'u2',)]
Run Code Online (Sandbox Code Playgroud)
如果你只想要字符串,列表理解可以做到这一点:
>>> usr_names = User.objects.all().values('username')
>>> [u['username'] for u in usr_names]
>>> [u'u1', u'u2']
Run Code Online (Sandbox Code Playgroud)
使用values_list:
>>> usr_names = User.objects.all().values_list('username')
>>> [u[0] for u in usr_names]
>>> [u'u1', u'u2']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
35220 次 |
| 最近记录: |