python - 复制 AppEngine 查询对象以创建过滤器的变体,而不影响基本查询

标签 python google-app-engine filtering google-cloud-datastore

在我的 AppEngine 项目中,我需要使用某个过滤器作为基础,然后将各种不同的额外过滤器应用到最后,分别检索不同的结果集。例如:

base_query = MyModel.all().filter('mainfilter', 123)

然后我需要分别使用各个子查询的结果:

subquery1 = basequery.filter('subfilter1', 'xyz')
#Do something with subquery1 results here

subquery2 = basequery.filter('subfilter2', 'abc')
#Do something with subquery2 results here

不幸的是,“filter()”会影响基本查询查询实例的状态,而不仅仅是返回修改后的版本。有什么方法可以复制查询对象并将其用作基础吗?是否有一种标准的 Python 方法来欺骗可以使用的对象?

额外的过滤器实际上是在向导中动态应用不同表单的结果,并且它们使用分支中查询的“运行总计”来评估是否要提出进一步的问题。

显然,我可以传递基本的过滤条件堆栈,但如果可能的话,我宁愿使用查询本身,因为它为解决方案增添了简单性和优雅性。

最佳答案

没有正式批准的(例如,不太可能破坏)方法来做到这一点。当您需要时,只需根据参数重新创建查询就是最佳选择。

关于python - 复制 AppEngine 查询对象以创建过滤器的变体,而不影响基本查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2793734/

相关文章:

python - 获取 numpy 数组的所有排列

python - 字典列表仅在每次迭代中存储最后附加的值

python - 从 Tensorflow 中的 tf.matmul(tf.transpose(A), A) 获取对角线元素

java - 端点 GET 语句出现问题

python - 从子目录中的不同文件导入类

java - GAE 中的列表访问同步

python - 适用于 python2.7 谷歌应用引擎的云任务 API

sorting - Primefaces 数据表排序和过滤在 rowSelect 之前不起作用

python - 关于scipy.signal中savgol_filter函数参数的一些疑问

r - 我们可以创建一个比 R 中的值多 n 个级别的因子变量子集吗?