Django 给获取到数据库的字段取别名

mac2024-05-24  50

正常通过ORM查询,可能有关联查询什么的,此时如果想换成自己API定义的字段就需要重新遍历重新赋值,下面介绍下两种简单的方法给查询到的字段取别名。

方法一、annotate

data = Artitle.objects.annotate(new_name=F('name')).values('new_name')

方法二、extra,对于关系表的字段取别名这种方法不行

data= Artitle.objects.extra({'new_name':'name'}).values('new_name')

 

对于pymongo查询数据库并给字段取别名:

先准备些数据:

db.getCollection('sales').insertMany([ { "_id" : 1, "item" : "abc", "price" : 10, "quantity" : 2, "date" : ISODate("2014-03-01T08:00:00Z") }, { "_id" : 2, "item" : "jkl", "price" : 20, "quantity" : 1, "date" : ISODate("2014-03-01T09:00:00Z") }, { "_id" : 3, "item" : "xyz", "price" : 5, "quantity" : 10, "date" : ISODate("2014-03-15T09:00:00Z") }, { "_id" : 4, "item" : "xyz", "price" : 5, "quantity" : 20, "date" : ISODate("2014-04-04T11:21:39.736Z") }, { "_id" : 5, "item" : "abc", "price" : 10, "quantity" : 10, "date" : ISODate("2014-04-04T21:23:13.331Z") } ]);

示例:只显示出 item、price列

db.sales.aggregate( [ { $project : { _id: 0, item : 1 , price : 1 } } ] )

示例:给现有数据库字段取别名

# 通过 "$quantity" 来表示操作的字段 db.sales.aggregate( [ { $project : { _id: 0, item : 1 , price : 1, qty: "$quantity" } } ] )

 

 

 

最新回复(0)