【问题标题】:How to use filter value as variable in django orm如何在 django orm 中使用过滤器值作为变量
【发布时间】:2020-02-16 03:49:03
【问题描述】:

我想在额外方法中使用tmp_id 作为row id 的值。

代码:

order_obj = table.objects.filter()
.annotate(
     tmp_id=F('table2__test_data')
)
.extra(
      select={"val":"select id from data where row_id = {{here i want to use 
      tmp_id}} limit 1"}
)

谁能告诉我怎么做?

【问题讨论】:

  • 您能详细解释一下您的问题吗?
  • 我想在 .extra 中使用 .annotate 的 tmp_id ....即每一行都包含不同的 tmp_id,我想将该 tmp_id 传递给 .extra 函数并获得一些不同的值。 @HamidrezaAhmadi

标签: python django django-orm django-annotate


【解决方案1】:

我找不到任何可以直接使用 temp_id 的解决方案,但有一个替代方法,我可以在下面给出的额外方法中直接指定 table2.test_data。

order_obj = table.objects.filter()
.annotate(
     tmp_id=F('table2__test_data')
)
.extra(
      select={"val":"select id from data where row_id = table2.test_data limit 1"}
)

【讨论】:

    猜你喜欢
    • 2021-07-22
    • 2012-05-12
    • 2022-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多