比如下面这段:
m.User.objects.values('id', 'coreuserwxprofile__nickname').filter(
coreuserwxprofile__nickname__contains=q).all()[0:20]
我要是希望返回结果是这样的:
[{'id':1,'nick':'tom'}]
应该怎么做呢?
谢谢~~~
比如下面这段:
m.User.objects.values('id', 'coreuserwxprofile__nickname').filter(
coreuserwxprofile__nickname__contains=q).all()[0:20]
我要是希望返回结果是这样的:
[{'id':1,'nick':'tom'}]
应该怎么做呢?
谢谢~~~
两种办法, 自己挑一种吧
第一种:
users = User.objects.filter(coreuserwxprofile__nickname__contains=q).values('id', 'coreuserwxprofile__nickname')[0:20]
users = [{'id': _.id, 'nick': _.coreuserwxprofile__nickname} for _ in users]
第二种:
users = User.objects.filter(coreuserwxprofile__nickname__contains=q).extra(
select = {'nick': 'coreuserwxprofile.nickname'}
).values('id', 'nick')[0:20]
from django.db.models import F
User.objects.values('id', nick=F('coreuserwxprofile__nickname'))
2 回答5.1k 阅读✓ 已解决
2 回答1.1k 阅读✓ 已解决
4 回答1.4k 阅读✓ 已解决
3 回答1.3k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
1 回答1.7k 阅读✓ 已解决
1 回答1.2k 阅读✓ 已解决