Python-Django ormフィールド別名

716 ワード

Python-Django ormフィールド別名
Max.Bai
2018-11
 
Django ormデータ照会結果フィールドに別名を付ける
sqlの書き方は似ています.
select name as username, id as userid
from users

Djangoが列明を変更する方法は2つあります.
方法1:annotate
from django.db.models import F

Users.objects.filter(id=1).annotate(new_name=F('old_name'), ...).values('new_name')

方法2:extra
Users.objects.filter().extra(select={'new_name': 'old_name', 'new_f2': 'old_f2'}).values('new_name')

djangoが最後に実行したsql:
SELECT (name) AS "username" FROM "Users" WHERE "id" = 11;