更改Django查询中的字段名称

时间:2018-03-25 21:41:00

标签: sql django django-models field

我有几个Django查询需要与.union()结合使用。

.union()只有在所有字段名称相同时才有效,但情况并非如此。

那么,如何修改Django查询中的字段名称(比如在SQL中使用AS关键字)?

1 个答案:

答案 0 :(得分:4)

您可以使用annotate()为查询集中的每个项添加新字段。然后使用values(),这样您只需返回联合中所需的列。

MyModel.objects.annotate(new_name=F('old_name').values('new_name', 'other_field').union(
    MyOtherModel.objects.annotate(new_name=F('other_old_name').values('new_name', 'other_field')
)