python - Django:存储 Q 查询对象以进行可重复搜索?
问题描述
在我基于 Django 的网络应用程序中,用户可以执行搜索;查询由几个动态构造的复杂 Q 对象组成。
根据用户搜索参数,搜索将查询可变数量的列,并且还可以扩展到多个模型。
用户应该能够保存她的搜索以在以后重复它。
为此,我想将 Q 对象(我猜)存储在数据库表中。
这是好习惯吗?你会如何处理这个问题?
提前致谢。
解决方案
如果您只有一个或固定数量的Q
对象作为过滤器的一部分,则可以将传递给的参数保存Q
为 dict。
.eg 这个:
Q(buy_book__entity__type=ENTITY.INTERNAL)
相当于这个:
q_filter = {"buy_book__entity__type": ENTITY.INTERNAL}
Q(**q_filter)
您可以保存q_filter
在数据存储中。
推荐阅读
- c++ - 继承:调用基类的成员和方法
- php - 在 Wordpress、Woocommerce 和 AffiliateWP 上,修改 email-order-details.php 以在电子邮件模板中包含会员的名称
- javascript - 对仅在调试模式下工作的 LocaleLowerCase 做出本机反应
- sql - 在 SQL Server 中将行值转换为列
- c# - 简单的条件断点在 Visual Studio 2017 中引发错误
- python - 编码分类变量,如“状态名称”
- php - 如何使用 http_client 测试受 lexik_jwt_authentication 保护的 API?
- java - 具体实现openGL和LWJGL中的局部旋转
- python - Django不显示两个DetailView
- taleo-connect-client - 如何在 Taleo Connect 客户端的投影脚本中编写“If-condition”