【问题标题】:Change field names in a Django query更改 Django 查询中的字段名称
【发布时间】:2018-03-25 21:40:59
【问题描述】:

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

.union() 仅在所有字段名称相同的情况下才有效,情况并非如此。

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

【问题讨论】:

  • 鉴于您的其他问题,您可能会发现 Django 联合创始人 Simon Willison 的 this blog post 很有用。

标签: sql django django-models field


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-01-09
    • 2013-09-02
    • 1970-01-01
    • 2017-11-10
    • 2019-04-03
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多