python - 请教一个 django 数据库查询字段重命名的问题
PHPz
PHPz 2017-04-17 17:44:50
[Python讨论组]

比如下面这段:

m.User.objects.values('id', 'coreuserwxprofile__nickname').filter( 
coreuserwxprofile__nickname__contains=q).all()[0:20] 

我要是希望返回结果是这样的:

[{'id':1,'nick':'tom'}] 

应该怎么做呢?
谢谢~~~

PHPz
PHPz

学习是最好的投资!

全部回复(2)
高洛峰
from django.db.models import F

User.objects.annotate(nick=F('coreuserwxprofile__nickname')).values('id', 'nick')
阿神

两种办法, 自己挑一种吧
第一种:

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]
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号