django - django-queryable-properties 混淆
问题描述
我遇到了 django-queryable-properties 包的问题。
我有这个模型:
class MyModel(Model):
f1 = CharField()
f2 = AnnotationProperty(
annotation=RegexpMatches(source='f1', regexp=MY_REGEXP, group=1)
)
objects = QueryablePropertiesManager()
问题是:当我尝试过滤字段时,postgres 抛出错误,f2
因为 postgress 不允许 where 子句上的函数。
经过一些研究,我发现该字段f2
不在生成的 sql 的选择子句中。
换句话说:当我尝试MyModel.objects.filter(f2='a').first()
生成以下 sql 时:
SELECT "myapp_mymodel"."f1"
FROM "myapp_mymodel"
WHERE (regexp_matches("myapp_mymodel"."f1", (^m.+)_.+))[1] = 'a'
我的问题是:
如何将 f2 添加到 select 子句中,以便使用 django-queryable-properties 包查找该字段。
更新:
我正在使用Alexandr Shurigin 描述的RegexpMatches类
解决方案
推荐阅读
- react-native-android - 分支 io 退订
- algorithm - 算法的复杂性
- java - http响应中的Android json解析错误
- ios - 使用 JSONDecoder 时 UICollectionViewCells 显示为空
- html - 具有背景色的容器 div 隐藏表格单元格
- java - 不兼容的类型:int 无法转换为 java.awt.Color
- python - 如何在多行中查找记录字段的最大出现次数?
- javascript - 如何模拟水平滚动的固定定位但保持正常的垂直滚动?(表格的粘性列)
- python - Python 在 utf-8 或 cp1252 中导入 .csv 文件
- r - 当取决于前一列的值时,如何将序号附加到一列?