如何将字符串转换为Django.db.型号.query\utils.Q格式?

2024-10-02 14:19:37 发布

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

对于一个搜索函数,我想将django查询保存到数据库,然后再执行它。我将查询保存在一个表(Company,其id为qryText)中,如下所示。django查询保存为字符串。在

qrySaved = (AND: ('code__in', ['10', '11', '12']), ('color__in', ['1', '2', '3']))

我不能像这样执行它

^{pr2}$

因为q.qryText是一个字符串而不是django.db.型号.query-utils.Q格式。 如何执行这个字符串查询?在


Tags: anddjango函数字符串inid数据库db
1条回答
网友
1楼 · 发布于 2024-10-02 14:19:37

查询的字符串表示不容易(安全地)可逆,因此我将尝试使用不同类型的编码。例如,改用pickle库。在

编码:

import pickle
from django.db.models import query_utils

q = Q(code__in=[10, 11, 12], color_in=[1, 2, 3])
q_pickled = pickle.dumps(q)

再次解码:

^{pr2}$

相关问题 更多 >