我有这样的查询集
qs = User.objects.all()
我正在像这样转换为字典
qs.values('id', 'username')
但我想获取字符串表示形式,而不是用户名。
就像是
qs.values('id', '__str__')
你不能,values
只能获取存储在数据库中的值,字符串表示形式不存储在数据库中,它是在Python中计算的。
你可以做的是:
qs = User.objects.all()
# Compute the values list "manually".
data = [{'id': user.id, '__str__': str(user)} for user in qs]
# You may use a generator to not store the whole data in memory,
# it may make sense or not depending on the use you make
# of the data afterward.
data = ({'id': user.id, '__str__': str(user)} for user in qs)
Edit:再想一想,根据字符串表示的计算方式,可以使用annotate https://docs.djangoproject.com/fr/1.8/ref/models/querysets/#annotate with 查询表达式 https://docs.djangoproject.com/fr/1.8/ref/models/expressions/达到同样的结果。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)