如何在 django orm 中使用过滤器值作为变量

How to use filter value as variable in django orm

我想在额外方法中使用 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"}
)

谁能告诉我怎么做?

我找不到任何可以直接使用 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"}
)