代码之家  ›  专栏  ›  技术社区  ›  porton

更改Django查询中的字段名称

  •  2
  • porton  · 技术社区  · 7 年前

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

    但是 。联合体() 仅当所有字段名称都相同时才有效,情况并非如此。

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

    1 回复  |  直到 7 年前
        1
  •  6
  •   Alasdair    7 年前

    您可以使用 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')
    )