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

标签 python django django-orm django-annotate

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

关于python - 如何在 django orm 中使用过滤器值作为变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58462850/

相关文章:

Django Tastypie,多对多保存错误

django - 使用 Django RelatedField 进行自定义连接查询?

python - 函数名称在 python 类中未定义

jquery - Django 使用 Jquery 来 POST 数据

python - 左连接 Django ORM

javascript - 如何在 javascript/jquery 事件后更改 Django 中的服务器端数据?

django - 表单验证反转

python - 找到给定点的最小面积矩形以计算长轴和短轴长度的算法

python - 为什么我的 Python Django 日志文件为空,而我的控制台日志却不是?

python - 在python中用 Pandas 排序系列