如何通过动态查询比较表中的两列

2024-09-30 14:15:28 发布

您现在位置:Python中文网/ 问答频道 /正文

在动态查询中有一个需求,我想比较一个表的两个列,比如“column_a”和“column_b”(所有列都是字符串)。要比较的实际列在运行时决定。在

我在用夸格斯语编词典。但是Django假设RHS是一个绝对值,而不是同一个表的列。使用F()是一个选项,但是我找不到任何关于在kwargs中使用F()的文档。在

如果我使用kwargs={'predicted_value':'actual_value'} “实际值”用作文本字符串而不是列名

如何使用类似于: kwargs={'predicted_value':F('actual_value')}并将其作为Model.objects.filter(**千瓦)

或者,在LHS中有没有使用F(“列”)的方法? 例如。Model.objects.filter(F(第1列名称)=F(第2列名称))


Tags: django字符串名称modelobjectsvalue动态column
1条回答
网友
1楼 · 发布于 2024-09-30 14:15:28

对于非动态过滤器字段,我将使用:

from django.db.models import F

Model.objects.filter(some_col=F(kwargs.get('predicted_value')))

但是,如果您需要动态的,您可以尝试使用:

^{pr2}$

您甚至可以访问相关字段:

kwargs = {'fk_field__somefield':F('actual_value')}
Model.objects.filter(**kwargs)

相关问题 更多 >

    热门问题