【问题标题】:Adding attribute to all query objects using annotate?使用注释向所有查询对象添加属性?
【发布时间】:2020-01-12 23:59:40
【问题描述】:

有没有一种方法可以使用注释向所有查询对象添加属性?我基本上只需要从对象的m2m关系中获取一个值,并将其保存为对象的一个​​属性。

类似这样的: query.annotate(value_to_be_added=("value_from_m2m"))

基本上,我对同一模型有两个不同的查询,一个查询 A 需要为其所有对象更改或添加一个“值”(并且该值来自 m2m 关系)。查询 B 不需要更改这些值。

我该怎么做?

【问题讨论】:

  • 不太确定我是否完全理解您想要达到的目标。您是否考虑过使用 der F() expression 进行注释?

标签: python django python-3.x database orm


【解决方案1】:

我解决了。需要用到的只是一个简单的过滤器F()。

from django.db.models import F query.annotate(value_to_be_added=F("value_from_m2m"))

https://docs.djangoproject.com/en/3.0/ref/models/expressions/#f-expressions

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-20
    • 2018-04-05
    相关资源
    最近更新 更多