我有几个Django查询需要与.union()
结合使用。
但.union()
只有在所有字段名称相同时才有效,但情况并非如此。
那么,如何修改Django查询中的字段名称(比如在SQL中使用AS
关键字)?
答案 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')
)