我在数据库中有 2 个表:
class Param(models.Model):
s_name = models.CharField(max_length=200)
n_name = models.CharField(max_length=200)
class ParamValue(models.Model):
param = models.ForeignKey(Param)
value = models.IntegerField()
created = models.DateTimeField(default=datetime.now, blank=True)
我想创建动态构造函数。是否有任何库或方法可以创建动态逻辑过滤器,例如 Apache Lucene 或 Solr?
我的意思是这样的:
dyn_filter = parse("(value < 200 AND value__s_name == 'pressure')
OR (value > 10 AND value__s_name == 'depth')")
result = ParamValue.objects.filter(dyn_filer)
Django ORM 有Q允许您编写逻辑操作的对象OR与查询集参数。
下面的示例完全符合您的文本("(value < 200 AND value__s_name == 'pressure') OR (value > 10 AND value__s_name == 'depth')"
)要求:
from django.db.models import Q
ParamValue.objects.filter(
Q(value__lt=200, param__s_name='pressure') | Q(value__gt=10, param__s_name='depth')
)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)