如何将字符串转换为 django.db.models.query_utils.Q 格式?
How to convert string to django.db.models.query_utils.Q format?
对于搜索功能,我想将 Django 查询保存到数据库并稍后执行它。我已将查询保存在一个 table(公司,有 id,qryText)中,如下所示。 django 查询保存为字符串。
qrySaved = (AND: ('code__in', ['10', '11', '12']), ('color__in', ['1', '2', '3']))
我无法执行
q = Company.objects.get(id=1)
Car.objects.filter(q.qryText)
as q.qryText 是一个字符串,不是 django.db.models.query_utils.Q 格式。
我怎么能执行这个字符串查询?
查询的字符串表示不容易(安全)可逆,因此我会尝试使用不同类型的编码。例如,改为使用 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)
再次解码:
# Assuming that q_pickled is available and is a valid pickled string
import pickle
q = pickle.loads(q_pickled)
对于搜索功能,我想将 Django 查询保存到数据库并稍后执行它。我已将查询保存在一个 table(公司,有 id,qryText)中,如下所示。 django 查询保存为字符串。
qrySaved = (AND: ('code__in', ['10', '11', '12']), ('color__in', ['1', '2', '3']))
我无法执行
q = Company.objects.get(id=1)
Car.objects.filter(q.qryText)
as q.qryText 是一个字符串,不是 django.db.models.query_utils.Q 格式。 我怎么能执行这个字符串查询?
查询的字符串表示不容易(安全)可逆,因此我会尝试使用不同类型的编码。例如,改为使用 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)
再次解码:
# Assuming that q_pickled is available and is a valid pickled string
import pickle
q = pickle.loads(q_pickled)